diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-06-13 18:09:30 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-06-13 23:22:19 +0200 |
commit | 4ee79f22f5379b201eabca94c3ab34bb00a8a8b0 (patch) | |
tree | 5a7e12ca901f07a6a3e29fe9692c6193cd06f471 | |
parent | 5c46c8582f18c80e7628382d91fc604e3bf364fd (diff) | |
download | guix-4ee79f22f5379b201eabca94c3ab34bb00a8a8b0.tar.gz |
ui: 'package->recutils' takes #:extra-fields.
* guix/ui.scm (package->recutils): Add #:extra-fields and honor it.
-rw-r--r-- | guix/ui.scm | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/guix/ui.scm b/guix/ui.scm index 5060fd6dc7..b8cfc651a2 100644 --- a/guix/ui.scm +++ b/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 |