GNU bug report logs -
#45893
[PATCH 0/2] DRAFT: Hint for options.
Previous Next
Reported by: zimoun <zimon.toutoune <at> gmail.com>
Date: Fri, 15 Jan 2021 16:38:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #41 received at 45893 <at> debbugs.gnu.org (full text, mbox):
* guix/ui.scm (command-hint): New variable
* guix/ui.scm (run-guix-command): Use it.
---
guix/ui.scm | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/guix/ui.scm b/guix/ui.scm
index bd504c68da..895c3a721f 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -2123,6 +2123,14 @@ Run COMMAND with ARGS.\n"))
(define (run-guix-command command . args)
"Run COMMAND with the given ARGS. Report an error when COMMAND is not
found."
+ (define (command-hint guess commands)
+ (define command-names
+ (map (lambda (command)
+ (match (command-name command)
+ ((head tail ...) head)))
+ commands))
+ (string-closest (symbol->string guess) command-names #:threshold 3))
+
(define module
(catch 'misc-error
(lambda ()
@@ -2139,9 +2147,12 @@ found."
(load file)
(resolve-interface `(guix extensions ,command)))))
(lambda _
- (format (current-error-port)
- (G_ "guix: ~a: command not found~%") command)
- (show-guix-usage))))))
+ (let ((hint (command-hint command (commands))))
+ (when hint
+ (display-hint (format #f (G_ "Do you mean @code{~a}?") hint)))
+ (format (current-error-port)
+ (G_ "guix: ~a: command not found~%") command)
+ (show-guix-usage)))))))
(let ((command-main (module-ref module
(symbol-append 'guix- command))))
--
2.29.2
This bug report was last modified 4 years and 105 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.