SI/blkid.pm
changeset 7 03ca6d811a17
parent 6 df6ca24871d4
child 10 23dd30396607
--- 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: