diff options
author | yarl-baudig@mailoo.org <yarl-baudig@mailoo.org> | 2022-05-22 15:54:42 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-05-27 23:36:36 +0200 |
commit | d4158ea63ad6d112c3e95b3dde99608d7bd99148 (patch) | |
tree | 777fb5f6efec1677afbe4f649bdcbe5e7b7ecc34 /guix/scripts | |
parent | 5bfb7ebe5dd3011d766a98cb9875399fb836c4b1 (diff) |
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>
Diffstat (limited to 'guix/scripts')
-rwxr-xr-x | guix/scripts/substitute.scm | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index 908a8334a8..c5f5d23b47 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -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)))))) |