config/guix/profile-to-manifest: Include version when non-default.

master
Pierre Neidhardt 2019-06-25 09:44:45 +02:00
parent 8811706cbc
commit ca08f44972
1 changed files with 27 additions and 7 deletions

View File

@ -2,18 +2,38 @@
;; guile -s FILE ~/.guix-profile ;; guile -s FILE ~/.guix-profile
(use-modules (guix profiles) (use-modules (guix profiles)
(gnu packages) ; fold-packages
(guix packages) ; package structure
(ice-9 match) (ice-9 match)
(ice-9 pretty-print)) (ice-9 pretty-print))
(define (packages-by-name name)
(fold-packages (lambda (package list)
(if (string=? (package-name package) name)
(cons package list)
list))
'()))
(define (guix-manifest where) (define (guix-manifest where)
(sort (map (lambda (entry) (sort (map (lambda (entry)
(let ((out (manifest-entry-output entry))) (let* ((name (manifest-entry-name entry))
(if (string= out "out") (out (manifest-entry-output entry))
(manifest-entry-name entry) (version (manifest-entry-version entry))
(format #f "~a:~a" (default-version (match (packages-by-name name)
(manifest-entry-name entry) ((first-name . rest)
(manifest-entry-output entry))))) (package-version
(manifest-entries (profile-manifest where))) first-name))
(else #f))))
(string-append name
(if (and default-version
(not (string= version default-version)))
(format #f "@~a" version)
"")
(if (string= out "out")
""
(format #f ":~a" out)))))
(manifest-entries (profile-manifest where)))
string<?)) string<?))
;; Thanks to Ivan Vilata-i-Balaguer for this: ;; Thanks to Ivan Vilata-i-Balaguer for this: