From cc9a5c1454f49850c078045c88a300c1195eabc8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 27 Dec 2014 23:46:10 +0100 Subject: 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'. --- guix/scripts/package.scm | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'guix/scripts') 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 - (($ 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) + (($ 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 -- cgit v1.2.3