From 681c38ee8d1c313431c93a00f6814cad37d3d7f0 Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Wed, 20 Apr 2011 23:32:50 +0000 Subject: service_harddrake: add support for timeouted OK and Yes/No dialogs in addition to the current OK/Cancel dialogs. --- perl-install/standalone/service_harddrake | 10 +++++----- perl-install/standalone/service_harddrake_confirm | 11 ++++++++++- 2 files changed, 15 insertions(+), 6 deletions(-) (limited to 'perl-install') diff --git a/perl-install/standalone/service_harddrake b/perl-install/standalone/service_harddrake index 244d27c12..fec9d8a72 100755 --- a/perl-install/standalone/service_harddrake +++ b/perl-install/standalone/service_harddrake @@ -76,14 +76,14 @@ 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) = @_; +sub dialog_with_timeout { + my ($type, $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); + exec("/usr/share/harddrake/confirm", $type, $title, $msg); } alarm($timeout); wait(); @@ -395,7 +395,7 @@ foreach my $hw_class (@harddrake::data::tree) { $hw_class->{automatic} ||= ref($configurator) eq 'CODE'; if (!$hw_class->{automatic}) { - ($res, $no) = ask_with_timeout(N("Hardware changes in \"%s\" class (%s seconds to answer)", $Ident, $timeout), + ($res, $no) = dialog_with_timeout("okcancel", 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; @@ -434,7 +434,7 @@ Storable::store(\%config, $last_boot_config); my ($reply, $timedout); # Don't do autoreboot if X was somehow already started (not normally the case). if ($reboot_needed && ! -e "/tmp/.X11-unix/X0") { - ($reply, $timedout) = ask_with_timeout(N("Display driver setup"), N("The system has to be rebooted due to a display driver change.") . "\n\n" + ($reply, $timedout) = dialog_with_timeout("okcancel", N("Display driver setup"), N("The system has to be rebooted due to a display driver change.") . "\n\n" . N("Press Cancel within %d seconds to abort.", 30), 30, $plymouth); if ($reply || $timedout) { exec("/sbin/reboot"); diff --git a/perl-install/standalone/service_harddrake_confirm b/perl-install/standalone/service_harddrake_confirm index 914f644f8..f92807e2d 100755 --- a/perl-install/standalone/service_harddrake_confirm +++ b/perl-install/standalone/service_harddrake_confirm @@ -4,5 +4,14 @@ use common; use interactive; my $in = interactive->vnew; -my $res = $in->ask_okcancel($ARGV[0], $ARGV[1], 1); +my $res; + +if ($ARGV[0] eq "warn") { + $res = $in->ask_warn($ARGV[1], $ARGV[2]); +} elsif ($ARGV[0] eq "yesorno") { + $res = $in->ask_yesorno($ARGV[1], $ARGV[2], 1); +} elsif ($ARGV[0] eq "okcancel") { + $res = $in->ask_okcancel($ARGV[1], $ARGV[2], 1); +} + $in->exit($res); -- cgit v1.2.1