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.
This commit is contained in:
Ludovic Courtès 2016-04-06 23:19:00 +02:00
parent 7b9a66e519
commit 7cffaeb604
3 changed files with 14 additions and 2 deletions

View File

@ -5582,7 +5582,7 @@ $ guix challenge @var{package}
@noindent @noindent
where @var{package} is a package specification such as 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: The general syntax is:
@ -5590,6 +5590,11 @@ The general syntax is:
guix challenge @var{options} [@var{packages}@dots{}] guix challenge @var{options} [@var{packages}@dots{}]
@end example @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: The one option that matters is:
@table @code @table @code

View File

@ -236,6 +236,8 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n"))
ensure-store-item files)) ensure-store-item files))
(issues (discrepancies items urls))) (issues (discrepancies items urls)))
(for-each summarize-discrepancy issues) (for-each summarize-discrepancy issues)
(unless (null? issues)
(exit 1))
(return (null? issues))) (return (null? issues)))
#:system system))))))) #:system system)))))))

View File

@ -64,4 +64,9 @@
(apply guix-main (command-line)))) (apply guix-main (command-line))))
(maybe-augment-load-paths!) (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)) (run-guix-main))