ui: Only display link in capable terminals.

* guix/ui.scm (display-generation): Display generation path on new line.
* guix/scripts/describe.scm (channel-commit-hyperlink): Add TRANSFORMER argument.
(display-profile-content): Use TRANSFORMER argument to display URL explicitly
when terminal does not support hyperlinks.
This commit is contained in:
zimoun 2020-02-17 14:16:53 +01:00 committed by Pierre Neidhardt
parent 0aa0e1f8f4
commit d7545a6b53
No known key found for this signature in database
GPG Key ID: 9BDCF497A4BBCC7F
2 changed files with 12 additions and 5 deletions

View File

@ -201,7 +201,11 @@ way and displaying details about the channel's source code."
(format #t (G_ " commit: ~a~%")
(if (supports-hyperlinks?)
(channel-commit-hyperlink channel commit)
commit))))
commit))
(when (not (supports-hyperlinks?))
(format #t (G_ " URL: ~a~%")
(channel-commit-hyperlink channel commit
(lambda (url msg) url))))))
(_ #f)))
;; Show most recently installed packages last.
@ -233,9 +237,12 @@ way and displaying details about the channel's source code."
(define* (channel-commit-hyperlink channel
#:optional
(commit (channel-commit channel)))
(commit (channel-commit channel))
(transformer hyperlink))
"Return a hyperlink for COMMIT in CHANNEL, using COMMIT as the hyperlink's
text. The hyperlink links to a web view of COMMIT, when available."
text. The hyperlink links to a web view of COMMIT, when available.
TRANSFORMER is a procedure of 2 arguments, a URI and text, and returns a
string for display."
(let* ((url (channel-url channel))
(uri (string->uri url))
(host (and uri (uri-host uri))))
@ -244,7 +251,7 @@ text. The hyperlink links to a web view of COMMIT, when available."
(#f
commit)
((_ template)
(hyperlink (template url commit) commit)))
(transformer (template url commit) commit)))
commit)))

View File

@ -1637,7 +1637,7 @@ DURATION-RELATION with the current time."
(let* ((file (generation-file-name profile number))
(link (if (supports-hyperlinks?)
(cut file-hyperlink file <>)
identity))
(cut format #f (G_ "~a~%file: ~a") <> file)))
(header (format #f (link (highlight (G_ "Generation ~a\t~a")))
number
(date->string