diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-10-26 21:16:20 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-10-27 00:01:20 +0100 |
commit | ad18c7e64c844350f295a2f79605800a7718ed78 (patch) | |
tree | f9592d3bafeab8ca6a54a8aa749b7d69198a9486 /guix/ui.scm | |
parent | d50cb56d9b58f3e1605f59b35ce99942c3b70d24 (diff) | |
download | gnu-guix-ad18c7e64c844350f295a2f79605800a7718ed78.tar gnu-guix-ad18c7e64c844350f295a2f79605800a7718ed78.tar.gz |
ui: Add procedures to display a profile generation.
* guix/scripts/package.scm (guix-package)[process-query](list-generations):
Move part of the body to 'delete-generation' and
'display-profile-content'.
* guix/ui.scm (display-generation, display-profile-content): New
procedures.
Diffstat (limited to 'guix/ui.scm')
-rw-r--r-- | guix/ui.scm | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/guix/ui.scm b/guix/ui.scm index 59ff2a7fba..c45c50fa16 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -85,6 +85,8 @@ string->generations string->duration matching-generations + display-generation + display-profile-content run-guix-command run-guix program-name @@ -1015,6 +1017,32 @@ DURATION-RELATION with the current time." filter-by-duration) (else #f))) +(define (display-generation profile number) + "Display a one-line summary of generation NUMBER of PROFILE." + (unless (zero? number) + (let ((header (format #f (_ "Generation ~a\t~a") number + (date->string + (time-utc->date + (generation-time profile number)) + "~b ~d ~Y ~T"))) + (current (generation-number profile))) + (if (= number current) + (format #t (_ "~a\t(current)~%") header) + (format #t "~a~%" header))))) + +(define (display-profile-content profile number) + "Display the packages in PROFILE, generation NUMBER, in a human-readable +way." + (for-each (match-lambda + (($ <manifest-entry> name version output location _) + (format #t " ~a\t~a\t~a\t~a~%" + name version output location))) + + ;; Show most recently installed packages last. + (reverse + (manifest-entries + (profile-manifest (generation-file-name profile number)))))) + (define* (package-specification->name+version+output spec #:optional (output "out")) "Parse package specification SPEC and return three value: the specified |