all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#46308] [PATCH 0/1] Fix 2 corner cases for option hint
@ 2021-02-04 23:00 zimoun
  2021-02-04 23:02 ` [bug#46308] [PATCH 1/1] guix: scripts: Fix corner cases of hint for option typo zimoun
  0 siblings, 1 reply; 3+ messages in thread
From: zimoun @ 2021-02-04 23:00 UTC (permalink / raw)
  To: 46308; +Cc: zimoun

Hi,

First,

--8<---------------cut here---------------start------------->8---
$ guix package --shw=hello
guix package: error: shw=hello: unrecognized option
--8<---------------cut here---------------end--------------->8---

becomes

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix package --shw=hello
guix package: error: shw=hello: unrecognized option
hint: Did you mean `show'?
--8<---------------cut here---------------end--------------->8---

And second the ugly (introduced by ’option’hint):

--8<---------------cut here---------------start------------->8---
$ guix package -Z
Backtrace:
          11 (primitive-load "/home/simon/.config/guix/current/bin/guix")
In guix/ui.scm:
  2162:12 10 (run-guix-command _ . _)
In guix/scripts/package.scm:
   1075:2  9 (guix-package . _)
In ice-9/boot-9.scm:
  1731:15  8 (with-exception-handler #<procedure 7fc66e356f00 at ice-9/boot-9.scm:1815:7 (exn)> _ # _ …)
In srfi/srfi-37.scm:
   113:18  7 (next-arg)
In unknown file:
           6 (_ #<procedure 7fc66e356ea0 at srfi/srfi-37.scm:114:22 ()> #<procedure list _> #<hash-t…>)
In guix/scripts.scm:
    121:2  5 (_ _ #\Z _ . _)
In guix/utils.scm:
    920:4  4 (string-closest _ _ #:threshold _)
In guix/combinators.scm:
    46:26  3 (fold2 #<procedure 7fc66e24a660 at guix/utils.scm:920:11 (test closest minimal)> #f # (…))
In guix/utils.scm:
   921:25  2 (_ "help" #f +inf.0)
   911:12  1 (string-distance #\Z "help")
In unknown file:
           0 (string->list #\Z #<undefined> #<undefined>)

ERROR: In procedure string->list:
In procedure string->list: Wrong type argument in position 1 (expecting string): #\Z
--8<---------------cut here---------------end--------------->8---

is fixed:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix package -Z
guix package: error: Z: unrecognized option
--8<---------------cut here---------------end--------------->8---


A corner case is still missing:

        $ ./pre-inst-env guix environment -ah-hoc hello
        guix environment: error: a: unrecognized option

where it could be nice to hint for.  But from my understanding, it is not possible with SRFI-37.


All the best,
simon

zimoun (1):
  guix: scripts: Fix corner cases of hint for option typo.

 guix/scripts.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)


base-commit: 5ae09d7979a0696d862b9555314eab199f7ce576
-- 
2.29.2





^ permalink raw reply	[flat|nested] 3+ messages in thread

* [bug#46308] [PATCH 1/1] guix: scripts: Fix corner cases of hint for option typo.
  2021-02-04 23:00 [bug#46308] [PATCH 0/1] Fix 2 corner cases for option hint zimoun
@ 2021-02-04 23:02 ` zimoun
  2021-02-24 22:51   ` bug#46308: [PATCH 0/1] Fix 2 corner cases for option hint Ludovic Courtès
  0 siblings, 1 reply; 3+ messages in thread
From: zimoun @ 2021-02-04 23:02 UTC (permalink / raw)
  To: 46308; +Cc: zimoun

* guix/scripts.scm (option-hint): Fix corner cases.
---
 guix/scripts.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/guix/scripts.scm b/guix/scripts.scm
index c9ea9f2e29..1773894bc2 100644
--- a/guix/scripts.scm
+++ b/guix/scripts.scm
@@ -118,7 +118,12 @@ procedure, but both the category and synopsis are meant to be read (parsed) by
 according to'string-distance'."
   (define (options->long-names options)
     (filter string? (append-map option-names options)))
-  (string-closest guess (options->long-names options) #:threshold 3))
+  (match guess
+    ((? string?)
+     (match (string-split guess #\=)
+       ((name rest ...)
+        (string-closest name (options->long-names options) #:threshold 3))))
+    (_ #f)))
 
 (define (args-fold* args options unrecognized-option-proc operand-proc . seeds)
   "A wrapper on top of `args-fold' that does proper user-facing error
-- 
2.29.2





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* bug#46308: [PATCH 0/1] Fix 2 corner cases for option hint
  2021-02-04 23:02 ` [bug#46308] [PATCH 1/1] guix: scripts: Fix corner cases of hint for option typo zimoun
@ 2021-02-24 22:51   ` Ludovic Courtès
  0 siblings, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2021-02-24 22:51 UTC (permalink / raw)
  To: zimoun; +Cc: 46308-done

Hi,

zimoun <zimon.toutoune@gmail.com> skribis:

> * guix/scripts.scm (option-hint): Fix corner cases.

Applied!  I also reverted the change I made in
11f11d7ecb817d1421f8b5340bcced59396d8708, which addressed the
short-option problem you mention.

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-02-24 22:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-04 23:00 [bug#46308] [PATCH 0/1] Fix 2 corner cases for option hint zimoun
2021-02-04 23:02 ` [bug#46308] [PATCH 1/1] guix: scripts: Fix corner cases of hint for option typo zimoun
2021-02-24 22:51   ` bug#46308: [PATCH 0/1] Fix 2 corner cases for option hint Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.