X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=dupemerge;a=blobdiff_plain;f=dm6;h=0dcfab5778d56e17f6be1980d73fef2dc358c3da;hp=2d554e3a9924cbf3810171cf924e1763d6cbda4c;hb=f34e832fb0a9b7bd96cfc05a14edd072bf4b32e0;hpb=9d0ffbcf7b362b645d8a9ac012c43949ea9410ff diff --git a/dm6 b/dm6 index 2d554e3..0dcfab5 100755 --- a/dm6 +++ b/dm6 @@ -67,7 +67,7 @@ sub link_files { } my $link_dir = shift @ARGV; -(-d $link_dir) or usage; +usage unless $link_dir; my $prefix_length = 3; @@ -125,7 +125,7 @@ while () { next if ($st->nlink > $link_count_max); # Check link to inode - my $inode_link = prepare_parents("$link_dir/inode", $st->ino); + my $inode_link = prepare_parents($link_dir, $st->ino . 'I'); print STDERR 'I'; my $inode_st = lstat($inode_link); my $update_links; @@ -156,7 +156,7 @@ while () { $digest =~ y:/:_:; # Check link to digest - my $digest_link = prepare_parents("$link_dir/digest", $digest); + my $digest_link = prepare_parents($link_dir, "${digest}D"); print STDERR 'D'; my $digest_st = lstat($digest_link); if ($digest_st) { @@ -189,7 +189,7 @@ while () { } # A link to the inode indicates we are done, so do it last - $inode_link = prepare_parents("$link_dir/inode", $keep_ino); + $inode_link = prepare_parents($link_dir, "${keep_ino}I"); print STDERR ' '; link_files($digest_link, $inode_link); @@ -202,9 +202,9 @@ while () { print STDERR "\nGarbage collection in '$link_dir'..."; chdir($link_dir) || die "chdir: $link_dir: $!"; print STDERR "\nRemoving files with link count < 3..."; -system("find digest inode -type f -links -3 -print0 | xargs -0 rm -f") and die "system: exit status $?"; +system("find . -type f -links -3 -print0 | xargs -0 rm -f") and die "system: exit status $?"; print STDERR "\nRemoving empty directories..."; -system("find digest inode -type d -empty -print0 | xargs -0r rmdir -p --ignore-fail-on-non-empty") and die "system: exit status $?"; +system("find . -type d -empty -print0 | xargs -0r rmdir -p --ignore-fail-on-non-empty") and die "system: exit status $?"; print STDERR "\nDone.\n"; exit(0);