ui: Look up extensions before built-in commands.

* guix/ui.scm (run-guix-command): Modify order so that extensions are allowed
to override default commands.

Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
This commit is contained in:
zimoun 2021-01-16 01:57:08 +01:00 committed by Ricardo Wurmus
parent 04b1a1f6bd
commit 95852b305b
No known key found for this signature in database
GPG key ID: 197A5888235FACAC

View file

@ -2124,24 +2124,20 @@ (define (run-guix-command command . args)
"Run COMMAND with the given ARGS. Report an error when COMMAND is not
found."
(define module
(catch 'misc-error
(lambda ()
(resolve-interface `(guix scripts ,command)))
(lambda _
;; Check if there is a matching extension.
(catch 'misc-error
(lambda ()
(match (search-path (extension-directories)
(format #f "~a.scm" command))
(#f
(throw 'misc-error))
(file
(load file)
(resolve-interface `(guix extensions ,command)))))
(lambda _
(format (current-error-port)
(G_ "guix: ~a: command not found~%") command)
(show-guix-usage))))))
;; Check if there is a matching extension.
(match (search-path (extension-directories)
(format #f "~a.scm" command))
(#f
(catch 'misc-error
(lambda ()
(resolve-interface `(guix scripts ,command)))
(lambda _
(format (current-error-port)
(G_ "guix: ~a: command not found~%") command)
(show-guix-usage))))
(file
(load file)
(resolve-interface `(guix extensions ,command)))))
(let ((command-main (module-ref module
(symbol-append 'guix- command))))