migrate ~u2000/.md5 to file md5 attr
[cloudstore.git] / migrate-md5-attr.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4
5 use TokyoCabinet;
6 use Data::Dump qw(dump);
7 use autodie qw(:all);
8
9 open(my $passwd, '<', '/var/lib/extrausers/passwd');
10 while(<$passwd>) {
11         chomp;
12         my ($login,undef,$uid,$gid,undef,$dir,undef) = split(/:/,$_,7);
13         warn "# $login $uid $gid $dir";
14
15         my $md5 = "$dir/.md5";
16         if ( ! -e $md5 ) {
17                 warn "ERROR: $login doesn't have $md5: $!";
18                 next;
19         }
20
21         my %h;
22         tie %h, "TokyoCabinet::HDB", $md5 || die "ERROR $md5: $!";
23
24         while( my($k,$v) = each(%h) ) {
25                 #print "$v  $k\n";
26                 system "attr -s md5 -V $v $dir/$k";
27         }
28
29         untie %h;
30
31         unlink $md5;
32 }