diff -r fd87c1e3b451 -r d4942418a9ea SI/ptable.pm --- a/SI/ptable.pm Tue Jan 19 23:45:54 2010 +0100 +++ b/SI/ptable.pm Tue Jan 19 23:48:10 2010 +0100 @@ -18,48 +18,50 @@ # non-removable block devices (this may include # LVs (used as disk itself) too) foreach (glob("/sys/block/*")) { - my $name = basename($_); - my $dev = "/dev/$name"; + my $name = basename($_); + my $dev = "/dev/$name"; - next if !-e "$_/device"; - next if (grep { /ATTR{removable}/ } `udevadm info --attribute-walk --name $name`)[0] !~ /==.0./; - next if (stat $dev)[0] == (stat $0)[0]; + next if !-e "$_/device"; + next + if (grep { /ATTR{removable}/ } + `udevadm info --attribute-walk --name $name`)[0] !~ /==.0./; + next if (stat $dev)[0] == (stat $0)[0]; - # exclude the device (stick) we're part of - this HACK is - # only useful on KVM - the usb stick doesn't appear as a removeable - # device - next if (stat $0)[0] ~~ [map { (stat)[6] } map { "/dev/" . basename(dirname $_) } glob("$_/*/partition")]; - + # exclude the device (stick) we're part of - this HACK is + # only useful on KVM - the usb stick doesn't appear as a removeable + # device + next + if (stat $0)[0] ~~ [map { (stat)[6] } + map { "/dev/" . basename(dirname $_) } glob("$_/*/partition")]; - verbose("\n"); - verbose("device $dev\n"); - - die "ERR: $dev does not exist. (should not happen): $!" - if !-b $dev; + verbose("\n"); + verbose("device $dev\n"); - # now the physical disk -- let's ask for the partition table + die "ERR: $dev does not exist. (should not happen): $!" + if !-b $dev; - my @sfdisk = `sfdisk -d /dev/$name 2>/dev/null`; + # now the physical disk -- let's ask for the partition table - my $of = sprintf $file, $name; - my $oh = new IO::File ">$of" or die "Can't open >$of: $!\n"; - print $oh @sfdisk; + my @sfdisk = `sfdisk -d /dev/$name 2>/dev/null`; + + my $of = sprintf $file, $name; + my $oh = new IO::File ">$of" or die "Can't open >$of: $!\n"; + print $oh @sfdisk; - $devs->{disk}{"/dev/$name"} = { - pt => \@sfdisk - }; + $devs->{disk}{"/dev/$name"} = { pt => \@sfdisk }; - # and let's prepare the volume entries - foreach (@sfdisk) { - /^(\S+)\s*:.*Id=\s*([[:xdigit:]]+)/ or next; - $devs->{volume}{$1} = { - origin => "ptable", - ptable_type => $2, - }; - } + # and let's prepare the volume entries + foreach (@sfdisk) { + /^(\S+)\s*:.*Id=\s*([[:xdigit:]]+)/ or next; + $devs->{volume}{$1} = { + origin => "ptable", + ptable_type => $2, + }; + } } return; } 1; + # vim:sts=4 sw=4 aw ai si: