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_harddrake34
1 files changed, 20 insertions, 14 deletions
diff --git a/perl-install/standalone/service_harddrake b/perl-install/standalone/service_harddrake
index 20e43e995..32704fc24 100755
--- a/perl-install/standalone/service_harddrake
+++ b/perl-install/standalone/service_harddrake
@@ -94,27 +94,33 @@ foreach my $hw_class (@harddrake::data::tree) {
}
next unless -x first(split /\s+/, $configurator_pool[0]);
- my ($pid, $no);
- $SIG{ALRM} = sub { $no = 1; kill 15, $pid };
- unless ($pid = fork()) {
- exec("/usr/share/harddrake/confirm", $Ident, $timeout, $msg);
+ my ($pid, $no, $res);
+ if (!$hw_class->{automatic}) {
+ $SIG{ALRM} = sub { $no = 1; kill 15, $pid };
+ unless ($pid = fork()) {
+ exec("/usr/share/harddrake/confirm", $Ident, $timeout, $msg);
+ }
+ alarm($timeout);
+ wait();
+ $res = $?;
+ alarm(0);
+ } else {
+ $res = 1;
}
- alarm($timeout);
- wait();
- my $res = $?;
- alarm(0);
- if ($no) {
- require interactive;
- undef $wait;
- $in ||= interactive->vnew;
- $wait = $in->wait_message(N("Please wait"), N("Hardware probing in progress"));
- } elsif ($res) {
+ if ($res) {
foreach my $configurator (@configurator_pool) {
if (fork()) {
wait();
} else { exec("$configurator 2>/dev/null") or die "$configurator missing\n" }
}
}
+ if (!$hw_class->{automatic}) {
+ require interactive;
+ undef $wait;
+ $in ||= interactive->vnew;
+ $wait = $in->wait_message(N("Please wait"), N("Hardware probing in progress"));
+ }
+
}
# output new hw config