X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=dupemerge;a=blobdiff_plain;f=dm6;h=a88c83e1d17ba04a21b04fcff8762b48301a66da;hp=a25804b7ab927328fe8935b8a3c8795c2f4c4195;hb=de7efbca76dfc8ca745d8dabc2f9a99d9af0e4b4;hpb=f33f401917c7c40b17b3667fc8f29133e77c6523 diff --git a/dm6 b/dm6 index a25804b..a88c83e 100755 --- a/dm6 +++ b/dm6 @@ -9,7 +9,7 @@ use File::Temp; use File::stat; use MIME::Base64; -# Copyright (C) 2010 Zygo Blaxell +# Copyright (C) 2010 Zygo Blaxell # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -41,7 +41,7 @@ sub usage { Usage: $0 link-dir Hashes a NUL-separated list of files on stdin into link-dir. -Version: 20100513.0 +Version: 0.20100514 USAGE } @@ -106,9 +106,10 @@ sub prepare_parents { sub name_quad { my ($int64) = @_; - my $packed = pack('Q', $int64); + my $packed = pack('Q>', $int64); $packed =~ s/^\0+//os; my $base64_packed = encode_base64($packed, ''); + $base64_packed =~ y:/:_:; # Don't strip off the trailing padding since it makes the string # so short we end up just putting it back on again. # $base64_packed =~ s/=+$//os; @@ -221,9 +222,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 . -type f -links -3 -print0 | xargs -0 rm -f") and die "system: exit status $?"; +system("find . -type f -links -3 -print0 | xargs -0rt rm -f") and die "system: exit status $?"; print STDERR "\nRemoving empty directories..."; -system("find . -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 -0rt rmdir -p --ignore-fail-on-non-empty") and die "system: exit status $?"; print STDERR "\nDone.\n"; exit(0);