guix-commits
[Top][All Lists]
Advanced

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

02/02: pull: Display 'hash guix' hint when the new and old 'guix' are di


From: guix-commits
Subject: 02/02: pull: Display 'hash guix' hint when the new and old 'guix' are different.
Date: Thu, 9 May 2019 11:42:38 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit a0dc97a517cbc4c82640e30cacb2a564d128bbe9
Author: Ludovic Court├Ęs <address@hidden>
Date:   Thu May 9 17:31:44 2019 +0200

    pull: Display 'hash guix' hint when the new and old 'guix' are different.
    
    Fixes <https://bugs.gnu.org/35601>.
    Reported by Diego Nicola Barbato <address@hidden>.
    
    Previously we were calling (which "guix") after the new profile had been
    built and symlinked, so in most cases the hint would not be triggered,
    even though it should have been triggered.
    
    * guix/scripts/pull.scm (build-and-install)[guix-command]: New variable.
    Compare PROFILE/bin/guix against GUIX-COMMAND.
---
 guix/scripts/pull.scm | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index 3929cd4..2d42854 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -203,6 +203,10 @@ true, display what would be built without actually 
building it."
   (define update-profile
     (store-lift build-and-use-profile))
 
+  (define guix-command
+    ;; The 'guix' command before we've built the new profile.
+    (which "guix"))
+
   (mlet %store-monad ((manifest (channel-instances->manifest instances)))
     (mbegin %store-monad
       (update-profile profile manifest
@@ -211,17 +215,18 @@ true, display what would be built without actually 
building it."
       (munless dry-run?
         (return (newline))
         (return (display-profile-news profile #:concise? #t))
-        (match (which "guix")
-          (#f (return #f))
-          (str
-           (let ((new (map (cut string-append <> "/bin/guix")
-                           (list (user-friendly-profile profile)
-                                 profile))))
-             (unless (member str new)
-               (display-hint (format #f (G_ "After setting @code{PATH}, run
+        (if guix-command
+            (let ((new (map (cut string-append <> "/bin/guix")
+                            (list (user-friendly-profile profile)
+                                  profile))))
+              ;; Is the 'guix' command previously in $PATH the same as the new
+              ;; one?  If the answer is "no", then suggest 'hash guix'.
+              (unless (member guix-command new)
+                (display-hint (format #f (G_ "After setting @code{PATH}, run
 @command{hash guix} to make sure your shell refers to @file{~a}.")
-                                     (first new))))
-             (return #f))))))))
+                                      (first new))))
+              (return #f))
+            (return #f))))))
 
 (define (honor-lets-encrypt-certificates! store)
   "Tell Guile-Git to use the Let's Encrypt certificates."



reply via email to

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