diff --git a/yazi-cli/src/args.rs b/yazi-cli/src/args.rs index c309e201..c59f8b76 100644 --- a/yazi-cli/src/args.rs +++ b/yazi-cli/src/args.rs @@ -54,12 +54,12 @@ pub(super) struct CommandEmitTo { #[derive(clap::Args)] #[command(arg_required_else_help = true)] pub(super) struct CommandPack { - /// Add a package. - #[arg(short = 'a', long)] - pub(super) add: Option, + /// Add packages. + #[arg(short = 'a', long, num_args = 1..)] + pub(super) add: Option>, /// Delete a package. - #[arg(short = 'd', long)] - pub(super) delete: Option, + #[arg(short = 'd', long,num_args = 1..)] + pub(super) delete: Option>, /// Install all packages. #[arg(short = 'i', long)] pub(super) install: bool, diff --git a/yazi-cli/src/main.rs b/yazi-cli/src/main.rs index e1470017..b1561bfa 100644 --- a/yazi-cli/src/main.rs +++ b/yazi-cli/src/main.rs @@ -71,10 +71,16 @@ async fn run() -> anyhow::Result<()> { package::Package::load().await?.print()?; } else if cmd.upgrade { package::Package::load().await?.install(true).await?; - } else if let Some(repo) = cmd.add { - package::Package::load().await?.add(&repo).await?; - } else if let Some(repo) = cmd.delete { - package::Package::load().await?.delete(&repo).await?; + } else if let Some(repos) = cmd.add { + let mut package = package::Package::load().await?; + for repo in repos { + package.add(&repo).await?; + } + } else if let Some(repos) = cmd.delete { + let mut package = package::Package::load().await?; + for repo in repos { + package.delete(&repo).await?; + } } }