SI/blkid.pm
changeset 17 d4942418a9ea
parent 16 fd87c1e3b451
equal deleted inserted replaced
16:fd87c1e3b451 17:d4942418a9ea
     7 use IO::File;
     7 use IO::File;
     8 use File::Basename;
     8 use File::Basename;
     9 
     9 
    10 use SI::tools;
    10 use SI::tools;
    11 
    11 
    12 
       
    13 sub ids($\%) {
    12 sub ids($\%) {
    14     my ($file, $devs) = @_;
    13     my ($file, $devs) = @_;
    15 
    14 
    16     my @volumes = sort keys %{$devs->{volume}};
    15     my @volumes = sort keys %{ $devs->{volume} };
    17     verbose("reading blkids: @volumes");
    16     verbose("reading blkids: @volumes");
    18     foreach (`blkid -c /dev/null @volumes`) {
    17     foreach (`blkid -c /dev/null @volumes`) {
    19         my $dev = (split /:/)[0];
    18         my $dev = (split /:/)[0];
    20 
    19 
    21         my ($uuid)  = /\sUUID=.(.*?).\s/;
    20         my ($uuid)  = /\sUUID=.(.*?).\s/;
    22         my ($type)  = /\sTYPE=.(.*?).\s/;
    21         my ($type)  = /\sTYPE=.(.*?).\s/;
    23         my ($label) = /\sLABEL=.(.*?).\s/;
    22         my ($label) = /\sLABEL=.(.*?).\s/;
    24 
    23 
    25 	if (exists $devs->{volume}{$dev}) {
    24         if (exists $devs->{volume}{$dev}) {
    26             $devs->{volume}{$dev}{uuid}  = $uuid;
    25             $devs->{volume}{$dev}{uuid}  = $uuid;
    27             $devs->{volume}{$dev}{type}  = $type;
    26             $devs->{volume}{$dev}{type}  = $type;
    28             $devs->{volume}{$dev}{label} = $label;
    27             $devs->{volume}{$dev}{label} = $label;
    29 
    28 
    30 	    my ($of, $oh);
    29             my ($of, $oh);
    31 	    if (defined $uuid) {
    30             if (defined $uuid) {
    32 		    $of = sprintf $file, "uuid." . basename $dev;
    31                 $of = sprintf $file, "uuid." . basename $dev;
    33 		    $oh = new IO::File ">$of" or die "ERR: Can't open $of: $!\n";
    32                 $oh = new IO::File ">$of" or die "ERR: Can't open $of: $!\n";
    34 		    $oh->print("$uuid\n");
    33                 $oh->print("$uuid\n");
    35 		}
    34             }
    36 
    35 
    37 		if (defined $label) {
    36             if (defined $label) {
    38 	    $of = sprintf $file, "label." . basename $dev;
    37                 $of = sprintf $file, "label." . basename $dev;
    39 	    $oh = new IO::File ">$of" or die "ERR: Can't open $of: $!\n";
    38                 $oh = new IO::File ">$of" or die "ERR: Can't open $of: $!\n";
    40 	    $oh->print("$label\n");
    39                 $oh->print("$label\n");
    41     }
    40             }
    42 
    41 
    43 	    if (defined $type) {
    42             if (defined $type) {
    44 		    $of = sprintf $file, "type." . basename $dev;
    43                 $of = sprintf $file, "type." . basename $dev;
    45 		    $oh = new IO::File ">$of" or die "ERR: Can't open $of: $!\n";
    44                 $oh = new IO::File ">$of" or die "ERR: Can't open $of: $!\n";
    46 		    $oh->print("$type\n");
    45                 $oh->print("$type\n");
    47 	    }
    46             }
    48 
    47 
    49 	}
    48         }
    50 
    49 
    51     }
    50     }
    52     verbose("\n");
    51     verbose("\n");
    53 }
    52 }
    54 
    53 
    55 1;
    54 1;
       
    55 
    56 # vim:sts=4 sw=4 aw ai si:
    56 # vim:sts=4 sw=4 aw ai si: