summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/service_harddrake
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/service_harddrake')
-rwxr-xr-xperl-install/standalone/service_harddrake97
1 files changed, 0 insertions, 97 deletions
diff --git a/perl-install/standalone/service_harddrake b/perl-install/standalone/service_harddrake
deleted file mode 100755
index bfc652d13..000000000
--- a/perl-install/standalone/service_harddrake
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/perl -w
-
-use lib qw(/usr/lib/libDrakX);
-
-use strict;
-use standalone; #- warning, standalone must be loaded very first, for 'explanations'
-use MDK::Common;
-use interactive;
-use harddrake::data;
-use Storable qw(store retrieve);
-
-my $hw_sysconfdir = "/etc/sysconfig/harddrake2";
-my $last_boot_config = $hw_sysconfdir."/previous_hw";
-
-my $str = '#!/usr/bin/perl -w
-#
-# Special file generated by harddrake service (cvs revision $Revision$).
-# Do not alter it; it\'ll be overwritten by harddrake2 service
-#
-# Format is : { Config_class_ID => {
-# Device => {
-# _Fields => values} ...} ...}
-#
-';
-
-# first run ? if not read old hw config
-my %previous_config = -f $last_boot_config ? retrieve($last_boot_config) : {};
-
-my (%config, $in);
-
-# For each hw, class, detect device, compare and offer to reconfigure if
-# needed
-foreach (@harddrake::data::tree) {
- my ($Ident, $item, undef, $configurator, $detector) = @$_;
-
- # No detector ? (should never happen but who know ?)
- ref($detector) eq 'CODE' or next;
-
- my %ID = map {
- my $i = $_;
- my $name = do {
- if ($item eq "Mouse") {
- $i->{media_type} = "MOUSE";
- $i->{device};
- } elsif (defined $i->{device}) {
- $i->{media_type} = "MASS_STORAGE_MEDIA";
- $i->{device};
- } else {
- join ':', map { $i->{$_} } qw(vendor id subvendor subid);
- }
- };
- $name => $i;
- } &$detector;
- $config{$Ident} = \%ID;
-
- next if is_empty_hash_ref %previous_config;
- my $oldconfig = $previous_config{$Ident};
-
- my $msg;
- my @was_removed = difference2([ keys %$oldconfig ], [ keys %ID ]);
- $msg .= _("Some devices in the \"%s\" hardware class were removed:\n", $item) if @was_removed;
- $msg .= "- $_ was removed\n" foreach @was_removed;
-
- my @added = difference2([ keys %ID ], [ keys %$oldconfig ]);
- $msg .= _("\nSome devices in the %s class were added:\n", $item) if @added;
- $msg .= "- $_ was added\n" foreach @added;
- @added || @was_removed or next;
-
- next unless (-x $configurator);
-
- my $res;
- $SIG{ALRM} = sub { die "TIMED OUT\n" };
- undef $@;
- eval {
- alarm (5);
- $in = 'interactive'->vnew('su') unless defined $in;
- $res = $in->ask_okcancel("Hardware changes in $Ident class (5 seconds to answer)",
- $msg . "\nDo you want to run the appropriate config tool ?", 1)
- or $in->wait_message(_('Please wait'), _('Hardware probing in progress'));
- alarm (0);
- };
-
- next unless ($@); # timed out
- print "CANCELED\n" if $res;
- next unless ($res); # canceled
- if (my $pid = fork) {
- require POSIX;
- POSIX::wait();
- } else {
- exec("$configurator 2>/dev/null") or die "$configurator missing\n";
- }
-}
-
-# output new hw config
-standalone::explanations "created file $last_boot_config";
-store \%config, $last_boot_config;
-$in->exit(0) if defined $in; exit 0;