substitute: Check for --help or --version options early.

Running `guix archive --authorize` sets /etc/guix/acl to 600
via with-atomic-file-output via mkstemp!.
Then running `guix substitute --help/--version` fails on "permission denied".
While "guix substitute" is an internal tool, the options --help and --version
exist and you should be able to run those from the command line.

* guix/scripts/substitute.scm (guix-substitute): Earlier check for
--help or --version.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
yarl-baudig@mailoo.org 2022-05-22 15:54:42 +02:00 committed by Ludovic Courtès
parent 5bfb7ebe5d
commit d4158ea63a
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5

View File

@ -704,6 +704,14 @@ default value."
(category internal)
(synopsis "implement the build daemon's substituter protocol")
(match args
((or ("-V") ("--version"))
(show-version-and-exit "guix substitute"))
((or ("-h") ("--help") ())
(show-help)
(exit 0))
(_ #t))
(define print-build-trace?
(match (or (find-daemon-option "untrusted-print-extended-build-trace")
(find-daemon-option "print-extended-build-trace"))
@ -775,10 +783,6 @@ default value."
#:print-build-trace?
print-build-trace?)
(loop))))))
((or ("-V") ("--version"))
(show-version-and-exit "guix substitute"))
((or ("-h") ("--help"))
(show-help))
(opts
(leave (G_ "~a: unrecognized options~%") opts))))))