diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-04-06 23:19:00 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-04-06 23:21:26 +0200 |
commit | 7cffaeb60473e25a7ef8c1a8cb36e1531191873a (patch) | |
tree | 7569a086b5c1da11cc10be9955d242bd4886d514 | |
parent | 7b9a66e51937bf627541a437f46949f69d2f5872 (diff) | |
download | guix-7cffaeb60473e25a7ef8c1a8cb36e1531191873a.tar guix-7cffaeb60473e25a7ef8c1a8cb36e1531191873a.tar.gz |
challenge: Really exit with non-zero upon hash mismatch.
Reported by John Darrington.
* guix/scripts/challenge.scm (guix-challenge): Add an explicit 'exit'
call when ISSUES is empty.
* scripts/guix.in: Add comment about 'exit'.
* doc/guix.texi (Invoking guix challenge): Mention the behavior and exit
code.
-rw-r--r-- | doc/guix.texi | 7 | ||||
-rw-r--r-- | guix/scripts/challenge.scm | 4 | ||||
-rw-r--r-- | scripts/guix.in | 5 |
3 files changed, 14 insertions, 2 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index aeeec617e0..a16422261a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5582,7 +5582,7 @@ $ guix challenge @var{package} @noindent where @var{package} is a package specification such as -@code{guile-2.0} or @code{glibc:debug}. +@code{guile@@2.0} or @code{glibc:debug}. The general syntax is: @@ -5590,6 +5590,11 @@ The general syntax is: guix challenge @var{options} [@var{packages}@dots{}] @end example +When a difference is found between the hash of a locally-built item and +that of a server-provided substitute, or among substitutes provided by +different servers, the command displays it as in the example above and +exits with a non-zero return code. + The one option that matters is: @table @code diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm index 4a0c865b07..0eb49da0cc 100644 --- a/guix/scripts/challenge.scm +++ b/guix/scripts/challenge.scm @@ -233,9 +233,11 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n")) (run-with-store store (mlet* %store-monad ((items (mapm %store-monad - ensure-store-item files)) + ensure-store-item files)) (issues (discrepancies items urls))) (for-each summarize-discrepancy issues) + (unless (null? issues) + (exit 1)) (return (null? issues))) #:system system))))))) diff --git a/scripts/guix.in b/scripts/guix.in index 8f2d8a6433..5d6921dd09 100644 --- a/scripts/guix.in +++ b/scripts/guix.in @@ -64,4 +64,9 @@ (apply guix-main (command-line)))) (maybe-augment-load-paths!) + + ;; XXX: It would be more convenient to change it to: + ;; (exit (run-guix-main)) + ;; but since the 'guix' command is not updated by 'guix pull', we cannot + ;; really do it now. (run-guix-main)) |