summaryrefslogtreecommitdiffstats
path: root/draksnapshot-applet
diff options
context:
space:
mode:
Diffstat (limited to 'draksnapshot-applet')
-rwxr-xr-xdraksnapshot-applet12
1 files changed, 9 insertions, 3 deletions
diff --git a/draksnapshot-applet b/draksnapshot-applet
index 655886c..a8b8082 100755
--- a/draksnapshot-applet
+++ b/draksnapshot-applet
@@ -208,13 +208,19 @@ sub configure() {
}
sub is_proper_device {
- my ($device) = @_;
- $device->QueryCapability('volume') && !$device->GetProperty('volume.is_disc') &&
+ my ($device, $o_is_first_check) = @_;
+ my $device_name = $device->QueryCapability('block') && $device->GetProperty('block.device');
+ return if !$device_name;
+ my $bool = $device->QueryCapability('volume') && !$device->GetProperty('volume.is_disc') &&
$device->GetProperty('volume.is_mounted');
+ return $o_is_first_check ? $bool && $device_name && cat_('/media/.hal-mtab') =~ m!^$device_name\s!sg : $bool;
}
sub firstCheck() {
- my @discs = grep { $_->{usb_bus} && detect_devices::may_be_a_hd($_) } detect_devices::getSCSI();
+ my $hal = $dbus->get_service($hal_dn);
+ my $manager = $hal->get_object($manager_path, $hal_manager);
+
+ my @discs = grep { is_proper_device($_, 1) } map { $hal->get_object($_, "$hal_dn.Device") } @{$manager->GetAllDevices};
# find root fs:
my $root;