diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-04-26 14:08:39 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-04-26 14:19:36 +0200 |
commit | 98f035482fcb32683429a474f4071bd530c3c1b8 (patch) | |
tree | 78bcfd0710a9ddb70baf2734c3f26e206f474c68 | |
parent | 9529f7850e3ae91cce70620e684fc6d0dc25e815 (diff) | |
download | guix-98f035482fcb32683429a474f4071bd530c3c1b8.tar guix-98f035482fcb32683429a474f4071bd530c3c1b8.tar.gz |
installer: Actually reboot when the user presses "Reboot."
* gnu/installer/newt/final.scm (run-install-success-page): Return
'success.
* gnu/installer.scm (installer-program): Check the result of the 'final
step and reboot upon success.
-rw-r--r-- | gnu/installer.scm | 19 | ||||
-rw-r--r-- | gnu/installer/newt/final.scm | 5 |
2 files changed, 19 insertions, 5 deletions
diff --git a/gnu/installer.scm b/gnu/installer.scm index dfb0c9d0db..fe2841397e 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -314,6 +314,7 @@ selected keymap." guile-json guile-git guix) (with-imported-modules `(,@(source-module-closure `(,@modules + (gnu services herd) (guix build utils)) #:select? module-to-import?) ((guix config) => ,(make-config.scm))) @@ -363,10 +364,20 @@ selected keymap." (catch #t (lambda () - (run-installer-steps - #:rewind-strategy 'menu - #:menu-proc (installer-menu-page current-installer) - #:steps steps)) + (define results + (run-installer-steps + #:rewind-strategy 'menu + #:menu-proc (installer-menu-page current-installer) + #:steps steps)) + + (match (result-step results 'final) + ('success + ;; We did it! Let's reboot! + (sync) + (stop-service 'root)) + (_ ;installation failed + ;; TODO: Honor the result of 'run-install-failed-page'. + #f))) (const #f) (lambda (key . args) (let ((error-file "/tmp/last-installer-error")) diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm index f470a90004..e8d3c48a36 100644 --- a/gnu/installer/newt/final.scm +++ b/gnu/installer/newt/final.scm @@ -56,7 +56,10 @@ This will take a few minutes.") (G_ "Reboot") (G_ "Congratulations! Installation is now complete. \ You may remove the device containing the installation image and \ -press the button to reboot."))) +press the button to reboot.")) + + ;; Return success so that the installer happily reboots. + 'success) (define (run-install-failed-page) (choice-window |