mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
feat(cli): support multiple packages in package management commands
Allow users to: - Add multiple packages at once: `ya pack -a A B C D` - Delete multiple packages at once: `ya pack -d A B C D` Fixes #2250
This commit is contained in:
parent
c061397a09
commit
7e427fed56
2 changed files with 15 additions and 9 deletions
|
|
@ -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<String>,
|
||||
/// Add packages.
|
||||
#[arg(short = 'a', long, num_args = 1..)]
|
||||
pub(super) add: Option<Vec<String>>,
|
||||
/// Delete a package.
|
||||
#[arg(short = 'd', long)]
|
||||
pub(super) delete: Option<String>,
|
||||
#[arg(short = 'd', long,num_args = 1..)]
|
||||
pub(super) delete: Option<Vec<String>>,
|
||||
/// Install all packages.
|
||||
#[arg(short = 'i', long)]
|
||||
pub(super) install: bool,
|
||||
|
|
|
|||
|
|
@ -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?;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue