summaryrefslogtreecommitdiffstats
path: root/move/move.pm
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2003-11-26 18:24:05 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2003-11-26 18:24:05 +0000
commit0f9800320c974c33b662714f00261ecca587c25f (patch)
treea72064cb6e1b7ec97c6808ff5a7f24dafc7ab4ed /move/move.pm
parentf2e8d9959cd200ef7c1a1588df8b84f57bf6ff27 (diff)
downloaddrakx-0f9800320c974c33b662714f00261ecca587c25f.tar
drakx-0f9800320c974c33b662714f00261ecca587c25f.tar.gz
drakx-0f9800320c974c33b662714f00261ecca587c25f.tar.bz2
drakx-0f9800320c974c33b662714f00261ecca587c25f.tar.xz
drakx-0f9800320c974c33b662714f00261ecca587c25f.zip
- overload install_steps_interactive::errorInStep because it's nice
to provide user with a way to get out of it (remove sysconf files) - reboot in a better manner so that we don't have console locked after XFree gets killed
Diffstat (limited to 'move/move.pm')
-rw-r--r--move/move.pm51
1 files changed, 45 insertions, 6 deletions
diff --git a/move/move.pm b/move/move.pm
index 61e9041fc..5b6486faa 100644
--- a/move/move.pm
+++ b/move/move.pm
@@ -155,13 +155,13 @@ sub init {
drakx_stuff:
$o->{steps}{$_} = { reachable => 1, text => $_ }
- foreach qw(displayBackground autoSelectLanguage handleI18NClp verifyKey configMove startMove);
+ foreach qw(initGraphical autoSelectLanguage handleI18NClp verifyKey configMove startMove);
$o->{orderedSteps_orig} = $o->{orderedSteps};
$o->{orderedSteps} = [ $using_existing_host_config ?
- qw(displayBackground verifyKey startMove)
+ qw(initGraphical verifyKey startMove)
: $using_existing_user_config ?
- qw(displayBackground autoSelectLanguage verifyKey selectMouse selectKeyboard configMove startMove)
- : qw(displayBackground selectLanguage handleI18NClp acceptLicense verifyKey selectMouse selectKeyboard configMove startMove) ];
+ qw(initGraphical autoSelectLanguage verifyKey selectMouse selectKeyboard configMove startMove)
+ : qw(initGraphical selectLanguage handleI18NClp acceptLicense verifyKey selectMouse selectKeyboard configMove startMove) ];
$o->{steps}{first} = $o->{orderedSteps}[0];
#- don't use shadow passwords since pwconv overwrites /etc/shadow hence contents will be lost for usb key
@@ -288,6 +288,11 @@ sub key_installfiles {
unlink($_), system("cp /image/$_ $_") foreach qw(/etc/sudoers);
}
+sub reboot {
+ touch '/tmp/reboot'; #- tell X_move to not respawn
+ system("killall X"); #- kill it ourselves to be sure that it won't lock console when killed by our init
+ exit 0;
+}
sub install2::verifyKey {
my ($o) = $::o;
@@ -330,7 +335,7 @@ unplug it now.
Click the button to reboot the machine, unplug it, remove write protection,
plug the key again, and launch Mandrake Move again.")),
ok => N("Reboot") });
- exit(0);
+ reboot();
}
modules::unload('usb-storage'); #- it won't notice change on write protection otherwise :/
@@ -471,11 +476,45 @@ sub install_TrueFS_in_home {
}
}
-sub install2::displayBackground {
+sub errorInStep {
+ my ($o, $err) = @_;
+
+ if (!fsedit::mntpoint2part('/home', $o->{fstab})) {
+ $o->ask_warn(N("Error"), [ N("An error occurred"), formatError($err) ]);
+ return;
+ }
+
+ $o->ask_okcancel_({ title => N("Error"),
+ messages => formatAlaTeX(
+N("An error occurred:
+
+
+%s
+
+This may come from corrupted system configuration files
+on the USB key, in this case removing them and then
+rebooting Mandrake Move would fix the problem. To do
+so, click on the corresponding button.
+
+
+You may also want to reboot and remove the USB key, or
+examine its contents under another OS, or even have
+a look at log files in console #3 and #4 to try to
+guess what's happening.", formatError($err))),
+ ok => N("Remove system config files"),
+ cancel => N("Simply reboot") }) or goto reboot;
+ eval { rm_rf $key_sysconf };
+reboot:
+ reboot();
+}
+
+sub install2::initGraphical {
my $xdim = $::rootwidth;
$xdim < 800 and $xdim = 800;
$xdim > 1600 and $xdim = 1600;
system("qiv --root /image/move/BOOT-$xdim-MOVE.jpg");
+
+ *install_steps_interactive::errorInStep = \&errorInStep;
}
sub install2::startMove {