summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2020-06-09 17:29:23 +0200
committerMathieu Othacehe <othacehe@gnu.org>2020-06-09 17:59:05 +0200
commit9392652e911b3963ef0f52f39677a6fc953f1e1e (patch)
tree210633b79d016fd49cca309e0bce98873d0484d8
parentce16b07d10ebda486d6e4cb6fd30fe797125aeac (diff)
downloadguix-9392652e911b3963ef0f52f39677a6fc953f1e1e.tar.gz
installer: final: Dump "guix system init" command output when testing.
When debugging the installation tests, it can be very handy to be able to read
"guix system init" command output.

* gnu/installer/final.scm (install-system): Dump installation command output
to the console when running the installation tests.
-rw-r--r--gnu/installer/final.scm13
1 files changed, 12 insertions, 1 deletions
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index 90c76e9d5f..e06b104d59 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -205,7 +205,18 @@ or #f.  Return #t on success and #f on failure."
       (lambda ()
         (start-service 'cow-store (list (%installer-target-dir))))
       (lambda ()
-        (run-command install-command #:locale locale))
+        ;; If there are any connected clients, assume that we are running
+        ;; installation tests. In that case, dump the standard and error
+        ;; outputs to syslog.
+        (if (not (null? (current-clients)))
+            (with-output-to-file "/dev/console"
+              (lambda ()
+                (with-error-to-file "/dev/console"
+                  (lambda ()
+                    (setvbuf (current-output-port) 'none)
+                    (setvbuf (current-error-port) 'none)
+                    (run-command install-command #:locale locale)))))
+            (run-command install-command #:locale locale)))
       (lambda ()
         (stop-service 'cow-store)
         ;; Remove the store overlay created at cow-store service start.