SI/blkid.pm
changeset 12 a1aee1136609
parent 10 23dd30396607
child 13 2e3ad71484ea
equal deleted inserted replaced
11:42c603eb6301 12:a1aee1136609
     2 
     2 
     3 use if $ENV{DEBUG} ~~ /blkid|all/ => "Smart::Comments";
     3 use if $ENV{DEBUG} ~~ /blkid|all/ => "Smart::Comments";
     4 
     4 
     5 use strict;
     5 use strict;
     6 use warnings;
     6 use warnings;
     7 use File::Find;
       
     8 
       
     9 
     7 
    10 use SI::tools;
     8 use SI::tools;
    11 
       
    12 sub find_by_devid($$) {
       
    13     my ($dir, $id) = @_;
       
    14     my $found;
       
    15     find(
       
    16         sub {
       
    17             return if $found;
       
    18             $found = (stat)[6] == $id ? $File::Find::name : undef;
       
    19             return;
       
    20         },
       
    21         $dir
       
    22     );
       
    23     return $found;
       
    24 }
       
    25 
     9 
    26 
    10 
    27 sub ids($\%) {
    11 sub ids($\%) {
    28     my ($file, $devs) = @_;
    12     my ($file, $devs) = @_;
    29 
    13 
    35 
    19 
    36         my ($uuid)  = /\sUUID=.(.*?).\s/;
    20         my ($uuid)  = /\sUUID=.(.*?).\s/;
    37         my ($type)  = /\sTYPE=.(.*?).\s/;
    21         my ($type)  = /\sTYPE=.(.*?).\s/;
    38         my ($label) = /\sLABEL=.(.*?).\s/;
    22         my ($label) = /\sLABEL=.(.*?).\s/;
    39 
    23 
    40         #if ($dev ~~ $devs->{physical}) {
       
    41             #$devs->{physical}{$dev}{uuid}  = $uuid;
       
    42             #$devs->{physical}{$dev}{type}  = $type;
       
    43             #$devs->{physical}{$dev}{label} = $label;
       
    44             #next;
       
    45         #}
       
    46 
       
    47         # dev mapper names should be replaced by nicer ones
    24         # dev mapper names should be replaced by nicer ones
    48         if ($dev ~~ /^\/dev\/dm-/) {
    25         if ($dev =~ /\/dev\/dm-/) {
    49             $dev = find_by_devid("/dev/mapper", (stat $dev)[6]);
    26             $dev = find_by_devid("/dev/mapper", (stat $dev)[6]);
    50 	};
    27 	};
    51 
    28 
    52 	if (exists $devs->{volume}{$dev}) {
    29 	if (exists $devs->{volume}{$dev}) {
    53             $devs->{volume}{$dev}{uuid}  = $uuid;
    30             $devs->{volume}{$dev}{uuid}  = $uuid;