guix package: Avoid spurious warnings from 'find-files'.

Reported by Andreas Enge <andreas@enge.fr>.

* guix/scripts/package.scm (with-null-error-port): New macro.
  (search-path-environment-variables): Wrap 'search-path-as-list' call
  in 'with-null-error-port'.
This commit is contained in:
Ludovic Courtès 2015-01-20 22:26:15 +01:00
parent 03411993a8
commit 1a0965045b
1 changed files with 14 additions and 4 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
@ -331,6 +331,11 @@ an output path different than CURRENT-PATH."
;;; Search paths.
;;;
(define-syntax-rule (with-null-error-port exp)
"Evaluate EXP with the error port pointing to the bit bucket."
(with-error-to-port (%make-void-port "w")
(lambda () exp)))
(define* (search-path-environment-variables entries profile
#:optional (getenv getenv))
"Return environment variable definitions that may be needed for the use of
@ -373,9 +378,14 @@ current settings and report only settings not already effective."
(files (if pattern
(map (cut string-append <> "/") files)
files))
(path (search-path-as-list files (list profile)
;; XXX: Silence 'find-files' when it stumbles upon non-existent
;; directories (see
;; <http://lists.gnu.org/archive/html/guix-devel/2015-01/msg00269.html>.)
(path (with-null-error-port
(search-path-as-list files (list profile)
#:type type
#:pattern pattern)))
#:pattern pattern))))
(if (every (cut member <> values) path)
#f
(format #f "export ~a=\"~a\""