guix system: Fix 'describe' when booting the latest generation.
authorLudovic Courtès <ludo@gnu.org>
Tue, 15 Feb 2022 15:56:14 +0000 (16:56 +0100)
committerLudovic Courtès <ludo@gnu.org>
Tue, 15 Feb 2022 16:24:08 +0000 (17:24 +0100)
Fixes a regression introduced in
9679123ce083c69cdfd1505d95a4066d41280394, whereby 'guix system describe'
would error out when /run/current-system points to /gnu/store/…-system,
which is the case when booting the latest generation or after
reconfigure.

* guix/scripts/system.scm (process-command): For 'describe'. Try
'generation-number' with and without the optional argument.

guix/scripts/system.scm

index 4308159..a6e717d 100644 (file)
@@ -1328,9 +1328,17 @@ argument list and OPTS is the option alist."
                       (x (leave (G_ "wrong number of arguments~%"))))))
        (list-generations pattern)))
     ((describe)
+     ;; Describe the running system, which is not necessarily the current
+     ;; generation.  /run/current-system might point to
+     ;; /var/guix/profiles/system-N-link, or it might point directly to
+     ;; /gnu/store/…-system.  Try both.
      (match (generation-number "/run/current-system" %system-profile)
        (0
-        (leave (G_ "no system generation, nothing to describe~%")))
+        (match (generation-number %system-profile)
+          (0
+           (leave (G_ "no system generation, nothing to describe~%")))
+          (generation
+           (display-system-generation generation))))
        (generation
         (display-system-generation generation))))
     ((search)