--- a/SI/blkid.pm Fri Jan 15 23:17:23 2010 +0100
+++ b/SI/blkid.pm Sat Jan 16 23:53:50 2010 +0100
@@ -4,38 +4,12 @@
use warnings;
use File::Find;
-sub ff($$);
-sub save($\%) {
- my ($file, $part) = @_;
-
- foreach (`blkid -c /dev/null`) {
- my ($dev) = (split /:/)[0];
-
- my ($uuid) = /\sUUID=.(.*?).\s/;
- my ($type) = /\sTYPE=.(.*?).\s/;
- my ($label) = /\sLABEL=.(.*?).\s/;
+use if $ENV{DEBUG} ~~ /blkid|all/ => "Smart::Comments";
- if ($dev ~~ $part->{physical}) {
- $part->{physical}{$dev}{uuid} = $uuid;
- $part->{physical}{$dev}{type} = $type;
- $part->{physical}{$dev}{label} = $label;
- next;
- }
+use SI::tools;
- # dev mapper names should be replace by nicer ones
- if ($dev ~~ /^\/dev\/dm-/) {
- $dev = ff("/dev/mapper", (stat $dev)[6])
- or next;
- $part->{logical}{$dev}{uuid} = $uuid;
- $part->{logical}{$dev}{type} = $type;
- $part->{logical}{$dev}{label} = $label;
- }
-
- }
-}
-
-sub ff($$) {
+sub find_by_devid($$) {
my ($dir, $id) = @_;
my $found;
find(
@@ -49,5 +23,41 @@
return $found;
}
+
+sub ids($\%) {
+ my ($file, $devs) = @_;
+
+ verbose("reading blkids:");
+ foreach (`blkid -c /dev/null`) {
+ my $dev = (split /:/)[0];
+ ### $dev
+ verbose($dev);
+
+ my ($uuid) = /\sUUID=.(.*?).\s/;
+ my ($type) = /\sTYPE=.(.*?).\s/;
+ my ($label) = /\sLABEL=.(.*?).\s/;
+
+ #if ($dev ~~ $devs->{physical}) {
+ #$devs->{physical}{$dev}{uuid} = $uuid;
+ #$devs->{physical}{$dev}{type} = $type;
+ #$devs->{physical}{$dev}{label} = $label;
+ #next;
+ #}
+
+ # dev mapper names should be replaced by nicer ones
+ if ($dev ~~ /^\/dev\/dm-/) {
+ $dev = find_by_devid("/dev/mapper", (stat $dev)[6]);
+ };
+
+ if (exists $devs->{volume}{$dev}) {
+ $devs->{volume}{$dev}{uuid} = $uuid;
+ $devs->{volume}{$dev}{type} = $type;
+ $devs->{volume}{$dev}{label} = $label;
+ }
+
+ }
+ verbose("\n");
+}
+
1;
# vim:sts=4 sw=4 aw ai si: