summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-02-15 16:56:14 +0100
committerLudovic Courtès <ludo@gnu.org>2022-02-15 17:24:08 +0100
commit791069737c8c51582cc021438dae32eb0fb7b8e0 (patch)
treefbf6731e2928fc4119931c9a21df5dc7189eed16
parentee92b0fb7dfd8b55ea63254a59a1605fb870a44c (diff)
downloadguix-791069737c8c51582cc021438dae32eb0fb7b8e0.tar.gz
guix system: Fix 'describe' when booting the latest generation.
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.
-rw-r--r--guix/scripts/system.scm10
1 files changed, 9 insertions, 1 deletions
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 430815902d..a6e717d52c 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -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)