guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: installer: Skip the backtrace page on user abort.


From: guix-commits
Subject: 02/02: installer: Skip the backtrace page on user abort.
Date: Wed, 2 Nov 2022 10:53:21 -0400 (EDT)

mothacehe pushed a commit to branch master
in repository guix.

commit 62a3756bd90c922c701e899a6c01c556d8e3c75a
Author: Mathieu Othacehe <othacehe@gnu.org>
AuthorDate: Mon Oct 31 16:43:09 2022 +0100

    installer: Skip the backtrace page on user abort.
    
    When the user aborts the installation because a core dump is discovered or 
the
    installation command failed, displaying the abort backtrace doesn't make 
much
    sense. Hide it when the abort condition is &user-abort-error and skip 
directly
    to the dump page.
    
    * gnu/installer/steps.scm (&user-abort-error): New variable.
    (user-abort-error?): New procedure.
    * gnu/installer/newt/final.scm (run-install-failed-page): Raise a
    user-abort-error.
    * gnu/installer/newt/welcome.scm (run-welcome-page): Ditto.
    * gnu/installer.scm (installer-program): Hide the backtrace page and 
directly
    propose to dump the report when the a &user-abort-error is raised.
---
 gnu/installer.scm              | 18 ++++++++++++++----
 gnu/installer/newt/final.scm   |  5 ++---
 gnu/installer/newt/welcome.scm |  3 +--
 gnu/installer/steps.scm        |  8 +++++++-
 4 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/gnu/installer.scm b/gnu/installer.scm
index 52c595b5b7..5cd1af8edf 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -453,11 +453,21 @@ selected keymap."
                                           key args)
                       (define dump-dir
                         (prepare-dump key args #:result %current-result))
+
+                      (define user-abort?
+                        (match args
+                          (((? user-abort-error? obj)) #t)
+                          (_ #f)))
+
                       (define action
-                        ((installer-exit-error current-installer)
-                         (get-string-all
-                          (open-input-file
-                           (string-append dump-dir "/installer-backtrace")))))
+                        (if user-abort?
+                            'dump
+                            ((installer-exit-error current-installer)
+                             (get-string-all
+                              (open-input-file
+                               (string-append dump-dir
+                                              "/installer-backtrace"))))))
+
                       (match action
                         ('dump
                          (let* ((dump-files
diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm
index 6e55be5067..9f950a0551 100644
--- a/gnu/installer/newt/final.scm
+++ b/gnu/installer/newt/final.scm
@@ -92,9 +92,8 @@ a specific step, or restart the installer."))
         ;; Keep going, the installer will be restarted later on.
         #t)
        (3 (raise
-           (condition
-            (&message
-             (message "User abort.")))))))
+            (condition
+             (&user-abort-error))))))
     (_
      (send-to-clients '(installation-failure))
      #t)))
diff --git a/gnu/installer/newt/welcome.scm b/gnu/installer/newt/welcome.scm
index 5d47591d67..326996b005 100644
--- a/gnu/installer/newt/welcome.scm
+++ b/gnu/installer/newt/welcome.scm
@@ -145,8 +145,7 @@ first?"))
         (1 #t)
         (2 (raise
             (condition
-             (&message
-              (message "User abort.")))))))
+             (&user-abort-error))))))
     (run-menu-page
      (G_ "GNU Guix install")
      (G_ "Welcome to GNU Guix system installer!
diff --git a/gnu/installer/steps.scm b/gnu/installer/steps.scm
index 8b25ae97c8..0c505e40e4 100644
--- a/gnu/installer/steps.scm
+++ b/gnu/installer/steps.scm
@@ -28,7 +28,10 @@
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
   #:use-module (rnrs io ports)
-  #:export (<installer-step>
+  #:export (&user-abort-error
+            user-abort-error?
+
+            <installer-step>
             installer-step
             make-installer-step
             installer-step?
@@ -50,6 +53,9 @@
 
             %current-result))
 
+(define-condition-type &user-abort-error &error
+  user-abort-error?)
+
 ;; Hash table storing the step results. Use it only for logging and debug
 ;; purposes.
 (define %current-result (make-hash-table))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]