diff mbox series

[bug#55577] Check substitute --help or --version options early

Message ID ea-mime-628a40a2-1c27-6be783e9@www-7.mailo.com
State Accepted
Headers show
Series [bug#55577] Check substitute --help or --version options early | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

yarl baudig May 22, 2022, 1:54 p.m. UTC
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: earlier check for --help or --version.
---
 guix/scripts/substitute.scm | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Ludovic Courtès May 27, 2022, 9:36 p.m. UTC | #1
Hi,

yarl-baudig@mailoo.org skribis:

> 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: earlier check for --help or --version.

Applied, thanks!

Ludo’.
diff mbox series

Patch

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 @@  (define-command (guix-substitute . args)
   (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 @@  (define reply-port
                                      #: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))))))