aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/installer.scm7
-rw-r--r--gnu/installer/newt/final.scm21
2 files changed, 18 insertions, 10 deletions
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 1676a91801..3f4ae4bf53 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
@@ -389,8 +389,9 @@ selected keymap."
;; We did it! Let's reboot!
(sync)
(stop-service 'root))
- (_ ;installation failed
- ;; TODO: Honor the result of 'run-install-failed-page'.
+ (_
+ ;; The installation failed, exit so that it is restarted
+ ;; by login.
#f)))
(const #f)
(lambda (key . args)
diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm
index 061bcd3f78..405eee2540 100644
--- a/gnu/installer/newt/final.scm
+++ b/gnu/installer/newt/final.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -27,6 +27,7 @@
#:use-module (guix i18n)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
+ #:use-module (ice-9 match)
#:use-module (newt)
#:export (run-final-page))
@@ -73,12 +74,18 @@ press the button to reboot."))
'success)
(define (run-install-failed-page)
- (choice-window
- (G_ "Installation failed")
- (G_ "Restart installer")
- (G_ "Retry system install")
- (G_ "The final system installation step failed. You can retry the \
-last step, or restart the installer.")))
+ (match (choice-window
+ (G_ "Installation failed")
+ (G_ "Resume")
+ (G_ "Restart the installer")
+ (G_ "The final system installation step failed. You can resume from \
+a specific step, or restart the installer."))
+ (1 (raise
+ (condition
+ (&installer-step-abort))))
+ (2
+ ;; Keep going, the installer will be restarted later on.
+ #t)))
(define* (run-install-shell locale
#:key (users '()))