summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/service_harddrake
diff options
context:
space:
mode:
authorAnssi Hannula <anssi@mageia.org>2011-04-17 14:33:49 +0000
committerAnssi Hannula <anssi@mageia.org>2011-04-17 14:33:49 +0000
commitaa5e4bb696bc5d93b556395c99dfc9bda3b0d6c3 (patch)
treeaedcff64061ba2e58f184b8d492d1c97e3f481fe /perl-install/standalone/service_harddrake
parent38d9dc3b7a295ce1207e5a91b8e543b69a19c824 (diff)
downloaddrakx-backup-do-not-use-aa5e4bb696bc5d93b556395c99dfc9bda3b0d6c3.tar
drakx-backup-do-not-use-aa5e4bb696bc5d93b556395c99dfc9bda3b0d6c3.tar.gz
drakx-backup-do-not-use-aa5e4bb696bc5d93b556395c99dfc9bda3b0d6c3.tar.bz2
drakx-backup-do-not-use-aa5e4bb696bc5d93b556395c99dfc9bda3b0d6c3.tar.xz
drakx-backup-do-not-use-aa5e4bb696bc5d93b556395c99dfc9bda3b0d6c3.zip
service_harddrake: Factorize ask_with_timeout for a following commit.
Diffstat (limited to 'perl-install/standalone/service_harddrake')
-rwxr-xr-xperl-install/standalone/service_harddrake29
1 files changed, 19 insertions, 10 deletions
diff --git a/perl-install/standalone/service_harddrake b/perl-install/standalone/service_harddrake
index 19333172e..80c071897 100755
--- a/perl-install/standalone/service_harddrake
+++ b/perl-install/standalone/service_harddrake
@@ -72,6 +72,22 @@ if (!member($curr_kernel, chomp_(cat_($known_kernels)))) {
append_to_file($known_kernels, "$curr_kernel\n");
}
+sub ask_with_timeout {
+ my ($title, $msg, $timeout, $plymouth) = @_;
+ my ($pid, $res, $timed_out);
+
+ $SIG{ALRM} = sub { $timed_out = 1; kill 15, $pid };
+ unless ($pid = fork()) {
+ $plymouth and system('plymouth', 'hide-splash');
+ exec("/usr/share/harddrake/confirm", $title, $msg);
+ }
+ alarm($timeout);
+ wait();
+ $res = $?;
+ alarm(0);
+ return $res, $timed_out;
+}
+
sub get_xorg_driver() {
my $x = Xconfig::xfree->read;
if ($x) {
@@ -332,19 +348,12 @@ foreach my $hw_class (@harddrake::data::tree) {
log::explanations(qw(skip $Ident configuration since "$configurator" is not executable));
next;
}
- my ($pid, $no, $res);
+ my ($no, $res);
$hw_class->{automatic} ||= ref($configurator) eq 'CODE';
if (!$hw_class->{automatic}) {
- $SIG{ALRM} = sub { $no = 1; kill 15, $pid };
- unless ($pid = fork()) {
- $plymouth and system('plymouth', 'hide-splash');
- exec("/usr/share/harddrake/confirm", $Ident, $timeout, $msg);
- }
- alarm($timeout);
- wait();
- $res = $?;
- alarm(0);
+ ($res, $no) = ask_with_timeout(N("Hardware changes in \"%s\" class (%s seconds to answer)", $Ident, $timeout),
+ $msg . N("Do you want to run the appropriate config tool?"), $timeout, $plymouth);
} else {
$res = 1;
}