guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/45: guix build: Print hints when -s or --target is passed an invalid


From: guix-commits
Subject: 01/45: guix build: Print hints when -s or --target is passed an invalid string.
Date: Thu, 4 Aug 2022 06:07:06 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit f44c13560885a8751fe59ba2e512a726c1674b1e
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Wed Aug 3 23:01:01 2022 +0200

    guix build: Print hints when -s or --target is passed an invalid string.
    
    * guix/scripts/build.scm (%standard-cross-build-options)
    (%standard-native-build-options): Print hints when the target/system is
    not found.
---
 guix/scripts/build.scm | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 75bbb701ae..06d9ad1f0c 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -373,8 +373,19 @@ use '--no-offload' instead~%")))
                        (first (member arg (targets))))))
                (if t
                    (apply values (alist-cons 'target t result) rest)
-                   (leave (G_ "'~a' is not a supported target~%")
-                          arg)))))))
+                   (let ((closest (string-closest arg (targets)
+                                                  #:threshold 5)))
+                     (report-error
+                      (G_ "'~a' is not a supported cross-compilation target~%")
+                      arg)
+                     (if closest
+                         (display-hint
+                          (format #f (G_ "Did you mean @code{~a}?
+Try @option{--list-targets} to view available targets.~%")
+                                  closest))
+                         (display-hint (G_ "\
+Try @option{--list-targets} to view available targets.~%")))
+                     (exit 1))))))))
 
 (define %standard-native-build-options
   ;; Build options related to native builds.
@@ -389,8 +400,18 @@ use '--no-offload' instead~%")))
                        (first (member arg (systems))))))
                (if s
                    (apply values (alist-cons 'system s result) rest)
-                   (leave (G_ "'~a' is not a supported system~%")
-                          arg)))))))
+                   (let ((closest (string-closest arg (systems)
+                                                  #:threshold 5)))
+                     (report-error (G_ "'~a' is not a supported system~%")
+                                   arg)
+                     (if closest
+                         (display-hint
+                          (format #f (G_ "Did you mean @code{~a}?
+Try @option{--list-systems} to view available system types.~%")
+                                  closest))
+                         (display-hint (G_ "\
+Try @option{--list-systems} to view available system types.~%")))
+                     (exit 1))))))))
 
 
 ;;;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]