migrate ~u2000/.md5 to file md5 attr
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 11 Feb 2012 16:50:38 +0000 (17:50 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 11 Feb 2012 16:50:38 +0000 (17:50 +0100)
migrate-md5-attr.pl [new file with mode: 0755]

diff --git a/migrate-md5-attr.pl b/migrate-md5-attr.pl
new file mode 100755 (executable)
index 0000000..8d11867
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+
+use TokyoCabinet;
+use Data::Dump qw(dump);
+use autodie qw(:all);
+
+open(my $passwd, '<', '/var/lib/extrausers/passwd');
+while(<$passwd>) {
+       chomp;
+       my ($login,undef,$uid,$gid,undef,$dir,undef) = split(/:/,$_,7);
+       warn "# $login $uid $gid $dir";
+
+       my $md5 = "$dir/.md5";
+       if ( ! -e $md5 ) {
+               warn "ERROR: $login doesn't have $md5: $!";
+               next;
+       }
+
+       my %h;
+       tie %h, "TokyoCabinet::HDB", $md5 || die "ERROR $md5: $!";
+
+       while( my($k,$v) = each(%h) ) {
+               #print "$v  $k\n";
+               system "attr -s md5 -V $v $dir/$k";
+       }
+
+       untie %h;
+
+       unlink $md5;
+}