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: |