diff --git a/src/index.rs b/src/index.rs index f248296..415f6f0 100644 --- a/src/index.rs +++ b/src/index.rs @@ -173,14 +173,23 @@ pub fn subindex_linkable(subindex: &mut SubIndex) -> SubIndex { return linkindex; } -pub fn make_links(linkindex: &SubIndex, args: &utils::Args) -> u64 { +pub fn make_links(linkindex: &SubIndex, directory: &Path, args: &utils::Args) -> u64 { let mut saved_bytes = 0; for i in 1 .. linkindex.len() { if ! utils::already_linked(&linkindex[0].path, &linkindex[i].path) { - utils::make_link(&linkindex[0].path, - &linkindex[i].path, linkindex[0].size, args); - saved_bytes += linkindex[i].size; + utils::make_link(&linkindex[0].path, &linkindex[i].path, args); + saved_bytes += linkindex[0].size; + + if ! args.quiet { + let src = linkindex[0].path.strip_prefix(directory).unwrap(); + let dest = linkindex[1].path.strip_prefix(directory).unwrap(); + println!("{}\x1b[0;1m{}\x1b[0m => \x1b[0;1m{}\x1b[0m [{}]", + directory.to_string_lossy(), + src.to_string_lossy(), + dest.to_string_lossy(), + utils::size_to_string(linkindex[0].size)); + } } } diff --git a/src/main.rs b/src/main.rs index 73833e5..faccf3b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -44,7 +44,8 @@ fn main() -> ExitCode { while subindex.len() > 1 { let linkindex = index::subindex_linkable(&mut subindex); if linkindex.len() > 1 { - saved_bytes += index::make_links(&linkindex, &args); + saved_bytes += + index::make_links(&linkindex, &directory, &args); } } } diff --git a/src/utils.rs b/src/utils.rs index 659b545..d07e748 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -78,11 +78,6 @@ pub fn size_to_string(size: u64) -> String { } } -fn print_feedback(src: &Path, dest: &Path, size: u64) { - println!("\x1b[0;1m{}\x1b[0m => \x1b[0;1m{}\x1b[0m [{}]", - src.to_string_lossy(), dest.to_string_lossy(), size_to_string(size)); -} - pub fn already_linked(src: &Path, dest: &Path) -> bool { let srcfile = fs::File::open(&src).unwrap(); let destfile = fs::File::open(&dest).unwrap(); @@ -115,7 +110,7 @@ fn make_hardlink(src: &Path, dest: &Path) { fs::hard_link(src, dest).unwrap(); } -pub fn make_link(src: &Path, dest: &Path, size: u64, args: &Args) { +pub fn make_link(src: &Path, dest: &Path, args: &Args) { if ! args.dryrun { if ! args.hardlinks { make_reflink(src, dest); @@ -123,7 +118,4 @@ pub fn make_link(src: &Path, dest: &Path, size: u64, args: &Args) { make_hardlink(src, dest) } } - if ! args.quiet { - print_feedback(src, dest, size); - } }