summaryrefslogtreecommitdiff
path: root/guix/modules.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/modules.scm')
-rw-r--r--guix/modules.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/guix/modules.scm b/guix/modules.scm
index 19a4acd76c..6c602eda48 100644
--- a/guix/modules.scm
+++ b/guix/modules.scm
@@ -26,6 +26,9 @@
#:export (missing-dependency-error?
missing-dependency-module
+ file-name->module-name
+ module-name->file-name
+
source-module-closure
live-module-closure
guix-module-name?))
@@ -93,6 +96,13 @@ depends on."
(_
'()))))))
+(define file-name->module-name
+ (let ((not-slash (char-set-complement (char-set #\/))))
+ (lambda (file)
+ "Return the module name (a list of symbols) corresponding to FILE."
+ (map string->symbol
+ (string-tokenize (string-drop-right file 4) not-slash)))))
+
(define (module-name->file-name module)
"Return the file name for MODULE."
(string-append (string-join (map symbol->string module) "/")