summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/scripts/system.scm13
-rw-r--r--guix/ui.scm1
2 files changed, 9 insertions, 5 deletions
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index b0974dcfcd..3eea872fe8 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -76,11 +76,14 @@
                   file (strerror err))))
         (('syntax-error proc message properties form . rest)
          (let ((loc (source-properties->location properties)))
-           (leave (_ "~a: ~a~%")
-                  (location->string loc) message)))
-        (_
-         (leave (_ "failed to load operating system file '~a': ~s~%")
-                file args))))))
+           (format (current-error-port) (_ "~a: error: ~a~%")
+                   (location->string loc) message)
+           (exit 1)))
+        ((error args ...)
+         (report-error (_ "failed to load operating system file '~a':~%")
+                       file)
+         (apply display-error #f (current-error-port) args)
+         (exit 1))))))
 
 
 ;;;
diff --git a/guix/ui.scm b/guix/ui.scm
index 5bd4d1f8c2..e1e75d8556 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -43,6 +43,7 @@
   #:export (_
             N_
             P_
+            report-error
             leave
             show-version-and-exit
             show-bug-report-information