summaryrefslogtreecommitdiff
path: root/guix/scripts
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-05-09 17:22:24 +0200
committerLudovic Courtès <ludo@gnu.org>2021-05-09 23:46:46 +0200
commit8a154c29151fc445e8d0364f507f6e200de1e700 (patch)
treebca633357bf0f0648e35268db00f50b1800b37b8 /guix/scripts
parent9562a2eb6162ea6712fe31529c30002a83313dd8 (diff)
describe: Gracefully handle profiles that lack provenance info.
Fixes <https://bugs.gnu.org/48313>. Previously, 'current-channels' would return the empty list when 'current-profile' is true but the profile lacks provenance info. * guix/describe.scm (current-channels)[build-time-metadata]: New procedure. Call it when 'manifest-entry-channel' returns #f for all of ENTRIES. * guix/scripts/describe.scm (guix-describe): When PROFILE is true, pass third argument to 'display-profile-info'.
Diffstat (limited to 'guix/scripts')
-rw-r--r--guix/scripts/describe.scm9
1 files changed, 8 insertions, 1 deletions
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index b5f6249176..a3e3338f7e 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -301,4 +301,11 @@ text. The hyperlink links to a web view of COMMIT, when available."
(channels
(display-profile-info #f format channels))))
(profile
- (display-profile-info (canonicalize-profile profile) format))))))
+ ;; For the current profile, resort to 'current-channels', which has a
+ ;; fallback to metadata from (guix config) in case PROFILE lacks it.
+ (let ((channels (if (and (current-profile)
+ (string=? profile (current-profile)))
+ (current-channels)
+ (profile-channels profile))))
+ (display-profile-info (canonicalize-profile profile)
+ format channels)))))))