[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
06/08: search-paths: 'evaluate-search-paths' now returns spec/value pair
From: |
Ludovic Courtès |
Subject: |
06/08: search-paths: 'evaluate-search-paths' now returns spec/value pairs. |
Date: |
Mon, 04 May 2015 21:31:01 +0000 |
civodul pushed a commit to branch master
in repository guix.
commit 441cfb420ab7979443cc2752b714738151c9c4e6
Author: Ludovic Courtès <address@hidden>
Date: Mon May 4 22:27:11 2015 +0200
search-paths: 'evaluate-search-paths' now returns spec/value pairs.
* guix/search-paths.scm (evaluate-search-paths): Return
specification/value pairs instead of variable/value pairs.
* guix/scripts/package.scm (search-path-environment-variables): Adjust
accordingly. Pass #:separator to 'environment-variable-definition'.
---
guix/scripts/package.scm | 8 ++++++--
guix/search-paths.scm | 9 +++++----
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 9e433dd..7f53af7 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -383,8 +383,12 @@ current settings and report only settings not already
effective."
(let ((search-paths (delete-duplicates
(append-map manifest-entry-search-paths entries))))
(filter-map (match-lambda
- ((variable . value)
- (environment-variable-definition variable value)))
+ ((spec . value)
+ (let ((variable (search-path-specification-variable spec))
+ (sep (search-path-specification-separator spec)))
+ ;; TODO: Offer the choice between exact/prefix/suffix.
+ (environment-variable-definition variable value
+ #:separator sep))))
(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 7957c88..154e508 100644
--- a/guix/search-paths.scm
+++ b/guix/search-paths.scm
@@ -117,12 +117,13 @@ like `string-tokenize', but SEPARATOR is a string."
(define* (evaluate-search-paths search-paths directory
#:optional (getenv (const #f)))
"Evaluate SEARCH-PATHS, a list of search-path specifications, for DIRECTORY,
-and return a list of variable/value pairs. Use GETENV to determine the
+and return a list of specification/value pairs. Use GETENV to determine the
current settings and report only settings not already effective."
(define search-path-definition
(match-lambda
- (($ <search-path-specification> variable files separator
- type pattern)
+ ((and spec
+ ($ <search-path-specification> variable files separator
+ type pattern))
(let* ((values (or (and=> (getenv variable)
(cut string-tokenize* <> separator))
'()))
@@ -141,7 +142,7 @@ current settings and report only settings not already
effective."
#:pattern pattern))))
(if (every (cut member <> values) path)
#f ;VARIABLE is already set appropriately
- (cons variable (string-join path separator)))))))
+ (cons spec (string-join path separator)))))))
(filter-map search-path-definition search-paths))
- branch master updated (2534fc0 -> 954cea3), Ludovic Courtès, 2015/05/04
- 01/08: substitute: Increase TTL from 24h to 36h., Ludovic Courtès, 2015/05/04
- 02/08: gnu: Add markdown., Ludovic Courtès, 2015/05/04
- 05/08: search-paths: Add 'environment-variable-definition'., Ludovic Courtès, 2015/05/04
- 07/08: profiles: Use a &message error condition instead of 'error'., Ludovic Courtès, 2015/05/04
- 06/08: search-paths: 'evaluate-search-paths' now returns spec/value pairs.,
Ludovic Courtès <=
- 03/08: Move search path specifications to (guix search-paths)., Ludovic Courtès, 2015/05/04
- 08/08: records: Make 'make-syntactic-constructor' available at load/eval/expand., Ludovic Courtès, 2015/05/04
- 04/08: search-paths: Add 'evaluate-search-paths', from (guix scripts package)., Ludovic Courtès, 2015/05/04