mars_agents/cli/
remove.rs1use crate::error::MarsError;
4use crate::sync::{ConfigMutation, ResolutionMode, SyncOptions, SyncRequest};
5use crate::types::SourceName;
6
7use super::output;
8
9#[derive(Debug, clap::Args)]
11pub struct RemoveArgs {
12 pub source: String,
14}
15
16pub fn run(args: &RemoveArgs, ctx: &super::MarsContext, json: bool) -> Result<i32, MarsError> {
18 let request = SyncRequest {
19 resolution: ResolutionMode::Normal,
20 mutation: Some(ConfigMutation::RemoveDependency {
21 name: SourceName::from(args.source.as_str()),
22 }),
23 options: SyncOptions::default(),
24 };
25 let report = crate::sync::execute(ctx, &request)?;
26
27 if !json {
28 output::print_info(&format!("removed dependency `{}`", args.source));
29 }
30
31 output::print_sync_report(&report, json, true);
32
33 if report.has_conflicts() { Ok(1) } else { Ok(0) }
34}