M guix/scripts/package.scm => guix/scripts/package.scm +6 -2
@@ 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)
M guix/search-paths.scm => guix/search-paths.scm +5 -4
@@ 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))