ui: 'package->recutils' takes #:extra-fields.
* guix/ui.scm (package->recutils): Add #:extra-fields and honor it.
This commit is contained in:
parent
5c46c8582f
commit
4ee79f22f5
22
guix/ui.scm
22
guix/ui.scm
|
@ -946,9 +946,10 @@ followed by \"+ \", which makes for a valid multi-line field value in the
|
|||
'()
|
||||
str)))
|
||||
|
||||
(define* (package->recutils p port #:optional (width (%text-width)))
|
||||
(define* (package->recutils p port #:optional (width (%text-width))
|
||||
#:key (extra-fields '()))
|
||||
"Write to PORT a `recutils' record of package P, arranging to fit within
|
||||
WIDTH columns."
|
||||
WIDTH columns. EXTRA-FIELDS is a list of symbol/value pairs to emit."
|
||||
(define width*
|
||||
;; The available number of columns once we've taken into account space for
|
||||
;; the initial "+ " prefix.
|
||||
|
@ -993,11 +994,11 @@ WIDTH columns."
|
|||
(G_ "unknown"))))
|
||||
(format port "synopsis: ~a~%"
|
||||
(string-map (match-lambda
|
||||
(#\newline #\space)
|
||||
(chr chr))
|
||||
(#\newline #\space)
|
||||
(chr chr))
|
||||
(or (and=> (package-synopsis-string p) P_)
|
||||
"")))
|
||||
(format port "~a~2%"
|
||||
(format port "~a~%"
|
||||
(string->recutils
|
||||
(string-trim-right
|
||||
(parameterize ((%text-width width*))
|
||||
|
@ -1005,7 +1006,16 @@ WIDTH columns."
|
|||
(string-append "description: "
|
||||
(or (and=> (package-description p) P_)
|
||||
""))))
|
||||
#\newline))))
|
||||
#\newline)))
|
||||
(for-each (match-lambda
|
||||
((field . value)
|
||||
(let ((field (symbol->string field)))
|
||||
(format port "~a: ~a~%"
|
||||
field
|
||||
(fill-paragraph (object->string value) width*
|
||||
(string-length field))))))
|
||||
extra-fields)
|
||||
(newline port))
|
||||
|
||||
(define (string->generations str)
|
||||
"Return the list of generations matching a pattern in STR. This function
|
||||
|
|
Loading…
Reference in New Issue