summaryrefslogtreecommitdiff
path: root/guix/utils.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-06-15 23:08:05 +0200
committerLudovic Courtès <ludo@gnu.org>2016-06-16 09:34:32 +0200
commit07c8a98c3b45dca9fd36af7c4a300d3af58734dd (patch)
tree1d2db14446ae9f6560ce0b8cb5398559bc9c2180 /guix/utils.scm
parentb78997495474e07083744c1f3ce506ee04488548 (diff)
downloadgnu-guix-07c8a98c3b45dca9fd36af7c4a300d3af58734dd.tar
gnu-guix-07c8a98c3b45dca9fd36af7c4a300d3af58734dd.tar.gz
gexp: Move 'current-source-directory' to (guix utils).
* guix/gexp.scm (extract-directory, current-source-directory): Move to... * guix/utils.scm (extract-directory, current-source-directory): ... here. New procedures.
Diffstat (limited to 'guix/utils.scm')
-rw-r--r--guix/utils.scm15
1 files changed, 15 insertions, 0 deletions
diff --git a/guix/utils.scm b/guix/utils.scm
index 2d8bfd84b0..19fd0b0844 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -53,6 +53,8 @@
substitute-keyword-arguments
ensure-keyword-arguments
+ current-source-directory
+
<location>
location
location?
@@ -700,6 +702,19 @@ output port, and PROC's result is returned."
;;; Source location.
;;;
+(define (extract-directory properties)
+ "Extract the directory name from source location PROPERTIES."
+ (match (assq 'filename properties)
+ (('filename . (? string? file-name))
+ (dirname file-name))
+ (_
+ #f)))
+
+(define-syntax-rule (current-source-directory)
+ "Expand to the directory of the current source file or #f if it could not
+be determined."
+ (extract-directory (current-source-location)))
+
;; A source location.
(define-record-type <location>
(make-location file line column)