diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-05-04 22:06:24 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-05-04 23:30:52 +0200 |
commit | b07901c0cc5b36efdc92263ddeaa2be28cf2f398 (patch) | |
tree | b9c1902ba9ecc29697e5fb6fd58c444ee891ec63 | |
parent | 6568d2bd6e4e047dd95b00a7a6e7501a16491eb5 (diff) | |
download | patches-b07901c0cc5b36efdc92263ddeaa2be28cf2f398.tar patches-b07901c0cc5b36efdc92263ddeaa2be28cf2f398.tar.gz |
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.
-rw-r--r-- | guix/scripts/package.scm | 2 | ||||
-rw-r--r-- | guix/search-paths.scm | 25 |
2 files changed, 25 insertions, 2 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 933f7d8ee5..9e433dd191 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -384,7 +384,7 @@ current settings and report only settings not already effective." (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) diff --git a/guix/search-paths.scm b/guix/search-paths.scm index b17f5acd5d..7957c88241 100644 --- a/guix/search-paths.scm +++ b/guix/search-paths.scm @@ -33,7 +33,8 @@ search-path-specification->sexp sexp->search-path-specification - evaluate-search-paths)) + evaluate-search-paths + environment-variable-definition)) ;;; Commentary: ;;; @@ -144,4 +145,26 @@ current settings and report only settings not already effective." (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 |