MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / run

Method run

atomic-cli/src/commands/intent/delete.rs:36–77  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

34
35impl Command for IntentDelete {
36 fn run(&self) -> CliResult<()> {
37 let root = find_repository_root()?;
38 let repo = Repository::open(&root).map_err(CliError::Repository)?;
39
40 if !self.force {
41 // Check that the intent exists before prompting.
42 repo.vault_intent_show(&self.id)
43 .map_err(CliError::Repository)?;
44
45 let prompt = format!(
46 "Discard intent '{}'? This removes the unstarted draft from the vault.",
47 self.id
48 );
49 let confirmed = dialoguer::Confirm::new()
50 .with_prompt(&prompt)
51 .default(false)
52 .interact()
53 .map_err(|e| CliError::Internal(anyhow::anyhow!("Prompt failed: {}", e)))?;
54
55 if !confirmed {
56 return Err(CliError::Cancelled);
57 }
58 }
59
60 let result = repo
61 .vault_intent_delete(&self.id)
62 .map_err(CliError::Repository)?;
63
64 if self.json {
65 let json = serde_json::json!({
66 "id": result.id,
67 "intent_file": result.intent_file,
68 "deleted": true,
69 });
70 println!("{}", serde_json::to_string_pretty(&json).unwrap());
71 } else {
72 println!("Deleted intent: {}", result.id);
73 println!(" file: .vault/{}", result.intent_file);
74 }
75
76 Ok(())
77 }
78}

Callers

nothing calls this directly

Calls 5

find_repository_rootFunction · 0.85
vault_intent_showMethod · 0.80
with_promptMethod · 0.80
vault_intent_deleteMethod · 0.80
defaultMethod · 0.45

Tested by

no test coverage detected