guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

48/66: search-paths: 'evaluate-search-paths' now returns spec/value pair


From: Manolis Fragkiskos Ragkousis
Subject: 48/66: search-paths: 'evaluate-search-paths' now returns spec/value pairs.
Date: Thu, 21 May 2015 12:52:06 +0000

phant0mas pushed a commit to branch wip-hurd
in repository guix.

commit 6da58200f0ea750b58a6d6ae9691ee50631c0c3d
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))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]