summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-12-27 23:46:10 +0100
committerLudovic Courtès <ludo@gnu.org>2014-12-27 23:46:10 +0100
commitcc9a5c1454f49850c078045c88a300c1195eabc8 (patch)
treef070ce2939d0c0e5506b5ad3538ca374f4678600
parentbd2fc4d81342dc15feba2998835e69dabee08864 (diff)
downloadguix-cc9a5c1454f49850c078045c88a300c1195eabc8.tar.gz
guix package: Use 'search-path-as-list' instead of custom code.
This will handle the new 'file-type' and 'file-pattern' fields correctly.

* guix/scripts/package.scm (search-path-environment-variables)[search-path-definition]:
  Rewrite in terms of 'search-path-as-list'.
-rw-r--r--guix/scripts/package.scm23
1 files changed, 12 insertions, 11 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 21dc66cb75..2f694cd55f 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -29,7 +29,8 @@
   #:use-module (guix utils)
   #:use-module (guix config)
   #:use-module (guix scripts build)
-  #:use-module ((guix build utils) #:select (directory-exists? mkdir-p))
+  #:use-module ((guix build utils)
+                #:select (directory-exists? mkdir-p search-path-as-list))
   #:use-module (ice-9 format)
   #:use-module (ice-9 match)
   #:use-module (ice-9 regex)
@@ -362,19 +363,19 @@ current settings and report only settings not already effective."
 
     (define search-path-definition
       (match-lambda
-       (($ <search-path-specification> variable directories separator)
-        (let ((values      (or (and=> (getenv variable)
-                                      (cut string-tokenize* <> separator))
-                               '()))
-              (directories (filter file-exists?
-                                   (map (cut string-append profile
-                                             "/" <>)
-                                        directories))))
-          (if (every (cut member <> values) directories)
+       (($ <search-path-specification> variable files separator
+                                       type pattern)
+        (let ((values (or (and=> (getenv variable)
+                                 (cut string-tokenize* <> separator))
+                          '()))
+              (path   (search-path-as-list files (list profile)
+                                           #:type type
+                                           #:pattern pattern)))
+          (if (every (cut member <> values) path)
               #f
               (format #f "export ~a=\"~a\""
                       variable
-                      (string-join directories separator)))))))
+                      (string-join path separator)))))))
 
     (let* ((packages     (filter-map manifest-entry->package entries))
            (search-paths (delete-duplicates