From 4b524a27edb8cd51f04bfc9bd79dfd17ab31003b Mon Sep 17 00:00:00 2001 From: diogo464 Date: Tue, 8 Feb 2022 10:59:23 +0000 Subject: fixed some issues with link and mv --- src/main.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index af20f71..132b418 100644 --- a/src/main.rs +++ b/src/main.rs @@ -123,16 +123,18 @@ struct LinkArgs { fn command_link(global_flags: Flags, args: LinkArgs) -> anyhow::Result<()> { let mut dotup = utils::read_dotup(&global_flags)?; - let origins = if args.directory { - vec![args.origin] - } else if args.origin.is_dir() { - utils::collect_files_in_dir_recursive(args.origin)? + if !args.directory && args.origin.is_dir() { + let directory = args.origin; + let origins = utils::collect_files_in_dir_recursive(&directory)?; + for origin in origins { + // unwrap: origin is under directory so stripping should not fail + let path_extra = origin.strip_prefix(&directory).unwrap(); + let destination = args.destination.join(path_extra); + dotup.link(&origin, &destination); + } } else { - vec![args.origin] + dotup.link(&args.origin, &args.destination); }; - for origin in origins { - dotup.link(origin, &args.destination); - } utils::write_dotup(&dotup)?; Ok(()) } -- cgit