From 7a9f4822c0c431c25071977b68ab79d152887ec3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 7 Jul 2021 23:29:25 +0200 Subject: utils: Add 'search-input-directory'. * guix/build/utils.scm (search-input-directory): New procedure. * doc/guix.texi (Build Utilities): Document it next to 'search-input-file'. Tweak wording. --- guix/build/utils.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'guix/build') diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 2636da392f..e7782d3e08 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -81,6 +81,7 @@ list->search-path-as-string which search-input-file + search-input-directory search-error? search-error-path search-error-file @@ -633,6 +634,22 @@ raised." (or (search-path directories file) (raise (condition (&search-error (path directories) (file file)))))))) +(define (search-input-directory inputs directory) + "Find a sub-directory named DIRECTORY among the INPUTS and return its +absolute file name. + +DIRECTORY must be a string like \"xml/dtd/docbook\". If DIRECTORY is not +found, an exception is raised." + (match inputs + (((_ . directories) ...) + (or (any (lambda (parent) + (let ((directory (string-append parent "/" directory))) + (and (directory-exists? directory) + directory))) + directories) + (raise (condition + (&search-error (path directories) (file directory)))))))) + ;;; ;;; Phases. -- cgit v1.2.3