equal
deleted
inserted
replaced
2 |
2 |
3 use strict; |
3 use strict; |
4 use warnings; |
4 use warnings; |
5 use File::Find; |
5 use File::Find; |
6 |
6 |
7 sub ff($$); |
|
8 |
7 |
9 sub save($\%) { |
8 use if $ENV{DEBUG} ~~ /blkid|all/ => "Smart::Comments"; |
10 my ($file, $part) = @_; |
|
11 |
9 |
12 foreach (`blkid -c /dev/null`) { |
10 use SI::tools; |
13 my ($dev) = (split /:/)[0]; |
|
14 |
11 |
15 my ($uuid) = /\sUUID=.(.*?).\s/; |
12 sub find_by_devid($$) { |
16 my ($type) = /\sTYPE=.(.*?).\s/; |
|
17 my ($label) = /\sLABEL=.(.*?).\s/; |
|
18 |
|
19 if ($dev ~~ $part->{physical}) { |
|
20 $part->{physical}{$dev}{uuid} = $uuid; |
|
21 $part->{physical}{$dev}{type} = $type; |
|
22 $part->{physical}{$dev}{label} = $label; |
|
23 next; |
|
24 } |
|
25 |
|
26 # dev mapper names should be replace by nicer ones |
|
27 if ($dev ~~ /^\/dev\/dm-/) { |
|
28 $dev = ff("/dev/mapper", (stat $dev)[6]) |
|
29 or next; |
|
30 $part->{logical}{$dev}{uuid} = $uuid; |
|
31 $part->{logical}{$dev}{type} = $type; |
|
32 $part->{logical}{$dev}{label} = $label; |
|
33 } |
|
34 |
|
35 } |
|
36 } |
|
37 |
|
38 sub ff($$) { |
|
39 my ($dir, $id) = @_; |
13 my ($dir, $id) = @_; |
40 my $found; |
14 my $found; |
41 find( |
15 find( |
42 sub { |
16 sub { |
43 return if $found; |
17 return if $found; |
47 $dir |
21 $dir |
48 ); |
22 ); |
49 return $found; |
23 return $found; |
50 } |
24 } |
51 |
25 |
|
26 |
|
27 sub ids($\%) { |
|
28 my ($file, $devs) = @_; |
|
29 |
|
30 verbose("reading blkids:"); |
|
31 foreach (`blkid -c /dev/null`) { |
|
32 my $dev = (split /:/)[0]; |
|
33 ### $dev |
|
34 verbose($dev); |
|
35 |
|
36 my ($uuid) = /\sUUID=.(.*?).\s/; |
|
37 my ($type) = /\sTYPE=.(.*?).\s/; |
|
38 my ($label) = /\sLABEL=.(.*?).\s/; |
|
39 |
|
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 |
|
48 if ($dev ~~ /^\/dev\/dm-/) { |
|
49 $dev = find_by_devid("/dev/mapper", (stat $dev)[6]); |
|
50 }; |
|
51 |
|
52 if (exists $devs->{volume}{$dev}) { |
|
53 $devs->{volume}{$dev}{uuid} = $uuid; |
|
54 $devs->{volume}{$dev}{type} = $type; |
|
55 $devs->{volume}{$dev}{label} = $label; |
|
56 } |
|
57 |
|
58 } |
|
59 verbose("\n"); |
|
60 } |
|
61 |
52 1; |
62 1; |
53 # vim:sts=4 sw=4 aw ai si: |
63 # vim:sts=4 sw=4 aw ai si: |