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_harddrake75
1 files changed, 0 insertions, 75 deletions
diff --git a/perl-install/standalone/service_harddrake b/perl-install/standalone/service_harddrake
deleted file mode 100755
index 964a59592..000000000
--- a/perl-install/standalone/service_harddrake
+++ /dev/null
@@ -1,75 +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 $invert_do_it = $ARGV[0] eq 'X11' ? 1 : 0;
-my ($hw_sysconfdir, $timeout) = ("/etc/sysconfig/harddrake2", $invert_do_it ? 600 : 5);
-my $last_boot_config = $hw_sysconfdir."/previous_hw";
-
-$last_boot_config .= '_X11' if $invert_do_it;
-
-# first run ? if not read old hw config
-my $previous_config = (-f $last_boot_config && -s $last_boot_config) ? retrieve($last_boot_config) : {};
-$previous_config = $$previous_config if ref($previous_config) !~ /HASH/;
-my (%config, $wait);
-my $in = interactive->vnew;
-
-# For each hw, class, detect device, compare and offer to reconfigure if needed
-foreach (@harddrake::data::tree) {
- my ($Ident, $item, undef, $configurator, $detector, $do_it) = @$_;
- next unless $do_it ^ $invert_do_it;
- # No detector ? (should never happen but who know ?)
- ref($detector) eq 'CODE' or next;
-
- my %ID = map {
- my $i = $_;
- my $id = defined $i->{device} ? $i->{device} : join(':', map { $i->{$_} } qw(vendor id subvendor subid));
- $id => $i;
- } &$detector;
- $config{$Ident} = \%ID;
- next if is_empty_hash_ref $previous_config; # don't fsck on first run
-
- my $oldconfig = $previous_config->{$Ident};
-
- my $msg;
- my @was_removed = difference2([ keys %$oldconfig ], [ keys %ID ]);
- if (@was_removed) {
- $msg .= _("Some devices in the \"%s\" hardware class were removed:\n", $item) .
- "- ". harddrake::data::custom_id($oldconfig->{$_}, $item) ." was removed\n" foreach @was_removed . "\n";
- }
- my @added = difference2([ keys %ID ], [ keys %$oldconfig ]);
- $msg .= _("Some devices were added:\n", $item) if @added;
- $msg .= "- ". harddrake::data::custom_id($ID{$_}, $item) ." was added\n" foreach (@added);
- @added || @was_removed or next;
- next unless (-x $configurator);
- my ($pid, $no);
- $SIG{ALRM} = sub { $no = 1; kill 15, $pid };
- unless ($pid = fork) {
- exec("/usr/share/harddrake/confirm 'Hardware changes in $Ident class ($timeout seconds to answer)' '" . $msg . "Do you want to run the appropriate config tool ?'");
- }
- alarm($timeout);
- wait;
- my $res = $?;
- alarm(0);
- if ($no) {
- require interactive;
- undef $wait;
- $wait = $in->wait_message(_('Please wait'), _('Hardware probing in progress'));
- } elsif ($res) {
- if (my $pid = fork) {
- 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);