Skip to content
Snippets Groups Projects
Commit b07901c0 authored by Ludovic Courtès's avatar Ludovic Courtès
Browse files

search-paths: Add 'environment-variable-definition'.

* guix/search-paths.scm (environment-variable-definition): New variable.
* guix/scripts/package.scm (search-path-environment-variables): Use it.
parent 6568d2bd
No related branches found
No related tags found
No related merge requests found
......@@ -384,7 +384,7 @@ (define* (search-path-environment-variables entries profile
(append-map manifest-entry-search-paths entries))))
(filter-map (match-lambda
((variable . value)
(format #f "export ~a=\"~a\"" variable value)))
(environment-variable-definition variable value)))
(evaluate-search-paths search-paths profile getenv))))
(define (display-search-paths entries profile)
......
......@@ -33,7 +33,8 @@ (define-module (guix search-paths)
search-path-specification->sexp
sexp->search-path-specification
evaluate-search-paths))
evaluate-search-paths
environment-variable-definition))
;;; Commentary:
;;;
......@@ -144,4 +145,26 @@ (define search-path-definition
(filter-map search-path-definition search-paths))
(define* (environment-variable-definition variable value
#:key
(kind 'exact)
(separator ":"))
"Return a the definition of VARIABLE to VALUE in Bash syntax:
KIND can be either 'exact (return the definition of VARIABLE=VALUE),
'prefix (return the definition where VALUE is added as a prefix to VARIABLE's
current value), or 'suffix (return the definition where VALUE is added as a
suffix to VARIABLE's current value.) In the case of 'prefix and 'suffix,
SEPARATOR is used as the separator between VARIABLE's current value and its
prefix/suffix."
(match kind
('exact
(format #f "export ~a=\"~a\"" variable value))
('prefix
(format #f "export ~a=\"~a${~a:+~a}$~a\""
variable value variable separator variable))
('suffix
(format #f "export ~a=\"$~a${~a:+~a}~a\""
variable variable variable separator value))))
;;; search-paths.scm ends here
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment