Subject: [bug#56089] [PATCH] refresh: Repurpose '-L' for '--load-path'.

From: Ludovic Courtès <[email-masked]>
Date: Sun, 19 Jun 2022 15:33:13 +0200

This incompatible change fixes an inconsistency with other commands
where '-L' is short for '--load-path'.

* guix/scripts/refresh.scm (%options): Add --load-path option from
%STANDARD-BUILD-OPTIONS.  Remove #\L shortcut for --list-updaters, and
remove --load-path option that lacked the #\L shortcut.
(show-help): Update accordingly.
* doc/guix.texi (Invoking guix refresh): Update accordingly.
---
 doc/guix.texi            |  2 +-
 guix/scripts/refresh.scm | 22 ++++++----------------
 2 files changed, 7 insertions(+), 17 deletions(-)

Hi!

This patch fixes a CLI inconsistency.  It introduces an incompatibility,
but one that's probably acceptable: '--list-updaters' is rarely used.

Commit 21f4fbdd8453e489fb89825c4226a0a0bda2bc17 purposefully
introduced '--load-path' without the '-L' shorthand; in hindsight,
reclaiming '-L' for '--load-path' sounds preferable to me.

Objections?

Ludo'.

diff --git a/doc/guix.texi b/doc/guix.texi
index 86348fc02c..43b550311d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -13715,7 +13715,6 @@ gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11
 @end example
 
 @item --list-updaters
-@itemx -L
 List available updaters and exit (see @option{--type} above).
 
 For each updater, display the fraction of packages it covers; at the
@@ -13846,6 +13845,7 @@ the user whether to download it or not.  This is the default behavior.
 Use @var{host} as the OpenPGP key server when importing a public key.
 
 @item --load-path=@var{directory}
+@itemx -L @var{directory}
 Add @var{directory} to the front of the package module search path
 (@pxref{Package Modules}).
 
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm
index 4d52200b84..14329751f8 100644
--- a/guix/scripts/refresh.scm
+++ b/guix/scripts/refresh.scm
@@ -81,7 +81,10 @@ (define %options
                          (names (map string->symbol
                                      (string-tokenize arg not-comma))))
                     (alist-cons 'updaters names result))))
-        (option '(#\L "list-updaters") #f #f
+        (find (lambda (option)
+                (member "load-path" (option-names option)))
+              %standard-build-options)
+        (option '("list-updaters") #f #f
                 (lambda args
                   (list-updaters-and-exit)))
         (option '(#\m "manifest") #t #f
@@ -119,19 +122,6 @@ (define %options
                      (leave (G_ "unsupported policy: ~a~%")
                             arg)))))
 
-        ;; The short option -L is already used by --list-updaters, therefore
-        ;; it needs to be removed from %standard-build-options.
-        (let ((load-path-option (find (lambda (option)
-                                         (member "load-path"
-                                                 (option-names option)))
-                                       %standard-build-options)))
-          (option
-           (filter (lambda (name) (not (equal? #\L name)))
-                   (option-names load-path-option))
-           (option-required-arg? load-path-option)
-           (option-optional-arg? load-path-option)
-           (option-processor     load-path-option)))
-
         (option '(#\h "help") #f #f
                 (lambda args
                   (show-help)
@@ -160,7 +150,7 @@ (define (show-help)
   -t, --type=UPDATER,... restrict to updates from the specified updaters
                          (e.g., 'gnu')"))
   (display (G_ "
-  -L, --list-updaters    list available updaters and exit"))
+      --list-updaters    list available updaters and exit"))
   (display (G_ "
   -l, --list-dependent   list top-level dependent packages that would need to
                          be rebuilt as a result of upgrading PACKAGE..."))
@@ -182,7 +172,7 @@ (define (show-help)
                          used when 'key-download' is not specified"))
   (newline)
   (display (G_ "
-      --load-path=DIR    prepend DIR to the package module search path"))
+  -L, --load-path=DIR    prepend DIR to the package module search path"))
   (newline)
   (display (G_ "
   -h, --help             display this help and exit"))

base-commit: 7f208f68dea828fe02718ca8ce81d5975136cff8
-- 
2.36.1