aboutsummaryrefslogtreecommitdiff
path: root/guix/scripts
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-06-26 22:23:36 +0200
committerLudovic Courtès <ludo@gnu.org>2014-06-27 00:12:40 +0200
commitc1202fb1f9b805e7c7151e3d34bd4f86c86acd75 (patch)
tree29253c66940610c655738e083fb47fdf2bbec655 /guix/scripts
parent80b77646a4af6073bb4a4e92f5d416716da20704 (diff)
downloadgnu-guix-c1202fb1f9b805e7c7151e3d34bd4f86c86acd75.tar
gnu-guix-c1202fb1f9b805e7c7151e3d34bd4f86c86acd75.tar.gz
guix {system,offload}: Improve reporting of syntax errors.
* guix/scripts/system.scm (read-operating-system) <catch handler>: Add case for 'syntax-error'. Correct message for default case. * guix/scripts/offload.scm (build-machines) <catch handler>: Add case for 'syntax-error'. * tests/guix-system.sh: New file. * Makefile.am (SH_TESTS): Add it.
Diffstat (limited to 'guix/scripts')
-rw-r--r--guix/scripts/offload.scm4
-rw-r--r--guix/scripts/system.scm6
2 files changed, 9 insertions, 1 deletions
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm
index d87cad3f23..18af511ed8 100644
--- a/guix/scripts/offload.scm
+++ b/guix/scripts/offload.scm
@@ -121,6 +121,10 @@ determined."
'()
(leave (_ "failed to open machine file '~a': ~a~%")
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 machine file '~a': ~s~%")
file args))))))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index c71ad4cbe9..1bedc2c68a 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -66,8 +66,12 @@
(let ((err (system-error-errno args)))
(leave (_ "failed to open operating system file '~a': ~a~%")
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 machine file '~a': ~s~%")
+ (leave (_ "failed to load operating system file '~a': ~s~%")
file args))))))
(define* (copy-closure store item target