MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / handle_reinstall_command

Function handle_reinstall_command

src/agent_cmd.rs:405–443  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

403}
404
405pub(crate) async fn handle_reinstall_command() -> tracedecay::errors::Result<()> {
406 let home = tracedecay::agents::home_dir().ok_or_else(|| {
407 tracedecay::errors::TraceDecayError::Config {
408 message: "could not determine home directory".to_string(),
409 }
410 })?;
411 let tracedecay_bin = tracedecay::agents::which_tracedecay().ok_or_else(|| {
412 tracedecay::errors::TraceDecayError::Config {
413 message: "tracedecay not found on PATH".to_string(),
414 }
415 })?;
416 let mut user_cfg = tracedecay::user_config::UserConfig::load();
417 tracedecay::agents::migrate_installed_agents(&home, &mut user_cfg);
418
419 if user_cfg.installed_agents.is_empty() {
420 eprintln!("No installed agents found. Run `tracedecay install` first.");
421 } else {
422 let agents = user_cfg.installed_agents.clone();
423 eprintln!(
424 "Reinstalling {} agent(s): {}",
425 agents.len(),
426 agents.join(", ")
427 );
428 let results = reinstall_agent_integrations(&agents, &home, &tracedecay_bin).await;
429 let failed: Vec<String> = results
430 .iter()
431 .filter_map(|(id, result)| result.as_ref().err().map(|_| id.clone()))
432 .collect();
433 if !failed.is_empty() {
434 return Err(tracedecay::errors::TraceDecayError::Config {
435 message: format!("failed to reinstall agent(s): {}", failed.join(", ")),
436 });
437 }
438 eprintln!("\x1b[32m✔\x1b[0m All agents reinstalled");
439 user_cfg.last_installed_version = env!("CARGO_PKG_VERSION").to_string();
440 user_cfg.save();
441 }
442 Ok(())
443}
444
445/// Re-runs `install()` + `post_install()` for each tracked agent id, returning
446/// only the ids that resolve to a real integration paired with their install

Callers 1

dispatch_commandFunction · 0.85

Calls 8

which_tracedecayFunction · 0.85
migrate_installed_agentsFunction · 0.85
collectMethod · 0.80
home_dirFunction · 0.50
loadFunction · 0.50
is_emptyMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected