ui: Add 'file-hyperlink'.

* guix/ui.scm (file-hyperlink): New procedure.
(location->hyperlink): Use it.
This commit is contained in:
Ludovic Courtès 2019-11-28 13:08:49 +01:00
parent 73765c91ce
commit fa983b8257
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -111,6 +111,7 @@ (define-module (guix ui)
package-specification->name+version+output
supports-hyperlinks?
file-hyperlink
location->hyperlink
relevance
@ -1255,6 +1256,13 @@ (define (supports-hyperlinks? port)
(and (isatty?* port)
(not (getenv "INSIDE_EMACS"))))
(define* (file-hyperlink file #:optional (text file))
"Return TEXT with escapes for a hyperlink to FILE."
(hyperlink (string-append "file://" (gethostname)
(encode-and-join-uri-path
(string-split file #\/)))
text))
(define (location->hyperlink location)
"Return a string corresponding to LOCATION, with escapes for a hyperlink."
(let ((str (location->string location))
@ -1262,10 +1270,7 @@ (define (location->hyperlink location)
(location-file location)
(search-path %load-path (location-file location)))))
(if file
(hyperlink (string-append "file://" (gethostname)
(encode-and-join-uri-path
(string-split file #\/)))
str)
(file-hyperlink file str)
str)))
(define* (package->recutils p port #:optional (width (%text-width))