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