diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-01-16 13:27:03 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-01-16 13:27:03 +0100 |
commit | 57b7e1a62d2269bfd9d37f88bae92c829222f8fc (patch) | |
tree | 5e6395e08025eb80de2040d77ac6febb558d2a72 /guix/scripts/package.scm | |
parent | 72b703cdcaec260733a4e30800cef5eab3f071a6 (diff) | |
parent | b01a0ba86e93012044f42c41ba5cbc7d7936c356 (diff) | |
download | guix-patches-57b7e1a62d2269bfd9d37f88bae92c829222f8fc.tar guix-patches-57b7e1a62d2269bfd9d37f88bae92c829222f8fc.tar.gz |
Merge branch 'core-updates'
Conflicts:
gnu/packages/bootstrap.scm
Diffstat (limited to 'guix/scripts/package.scm')
-rw-r--r-- | guix/scripts/package.scm | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 21dc66cb75..30b0658198 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,24 @@ 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)) + '())) + ;; Add a trailing slash to force symlinks to be treated as + ;; directories when 'find-files' traverses them. + (files (if pattern + (map (cut string-append <> "/") files) + files)) + (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 |