summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Kost <alezost@gmail.com>2017-02-17 13:17:03 +0300
committerAlex Kost <alezost@gmail.com>2017-02-27 16:44:57 +0300
commit96eaa55ffb9877c319df09d158fca31034d8f0a2 (patch)
treec2e5de23f040b65c74d4d2a32378dba1b7dfd06f
parent2982889d6826af13dd4e4983d4abd530a970662a (diff)
downloadguix-96eaa55ffb9877c319df09d158fca31034d8f0a2.tar.gz
packages: Add 'search-auxiliary-file'.
Suggested-by: Ludovic Courtès <ludo@gnu.org> at
<http://lists.gnu.org/archive/html/guix-devel/2016-12/msg01174.html>.

* gnu/packages.scm (%auxiliary-files-path): New variable.
(search-auxiliary-file): New procedure.
-rw-r--r--gnu/packages.scm24
1 files changed, 18 insertions, 6 deletions
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 0aa289d56c..10ca3bb314 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -40,8 +40,10 @@
   #:use-module (srfi srfi-39)
   #:export (search-patch
             search-patches
+            search-auxiliary-file
             search-bootstrap-binary
             %patch-path
+            %auxiliary-files-path
             %bootstrap-binaries-path
             %package-module-path
 
@@ -62,17 +64,27 @@
 ;;;
 ;;; Code:
 
-;; By default, we store patches and bootstrap binaries alongside Guile
-;; modules.  This is so that these extra files can be found without
-;; requiring a special setup, such as a specific installation directory
-;; and an extra environment variable.  One advantage of this setup is
-;; that everything just works in an auto-compilation setting.
+;; By default, we store patches, auxiliary files and bootstrap binaries
+;; alongside Guile modules.  This is so that these extra files can be
+;; found without requiring a special setup, such as a specific
+;; installation directory and an extra environment variable.  One
+;; advantage of this setup is that everything just works in an
+;; auto-compilation setting.
 
 (define %bootstrap-binaries-path
   (make-parameter
    (map (cut string-append <> "/gnu/packages/bootstrap")
         %load-path)))
 
+(define %auxiliary-files-path
+  (make-parameter
+   (map (cut string-append <> "/gnu/packages/aux-files")
+        %load-path)))
+
+(define (search-auxiliary-file file-name)
+  "Search the auxiliary FILE-NAME.  Return #f if not found."
+  (search-path (%auxiliary-files-path) file-name))
+
 (define (search-patch file-name)
   "Search the patch FILE-NAME.  Raise an error if not found."
   (or (search-path (%patch-path) file-name)