From 2b04d646aec90e0fe28e84356b13758b8a956e8a Mon Sep 17 00:00:00 2001 From: diogo464 Date: Tue, 15 Feb 2022 19:00:00 +0000 Subject: improved argument parsing --- src/main.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 8c8e9dc..a56238e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -116,6 +116,7 @@ struct LinkArgs { #[clap(long)] directory: bool, + #[clap(min_values = 1)] origins: Vec, destination: PathBuf, @@ -198,18 +199,15 @@ fn command_uninstall(global_flags: Flags, args: UninstallArgs) -> anyhow::Result /// Moves files/directories and updates links. #[derive(Parser, Debug)] struct MvArgs { - paths: Vec, + #[clap(min_values = 1)] + origins: Vec, + + destination: PathBuf, } fn command_mv(global_flags: Flags, args: MvArgs) -> anyhow::Result<()> { let mut dotup = utils::read_dotup(&global_flags)?; - let mut paths = args.paths; - if paths.len() < 2 { - return Err(anyhow::anyhow!("mv requires atleast 2 arguments")); - } - let to = paths.pop().unwrap(); - let from = paths; - dotup.mv(from.iter(), &to); + dotup.mv(args.origins.into_iter(), args.destination); utils::write_dotup(&dotup)?; Ok(()) } -- cgit