summaryrefslogtreecommitdiff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-08-04 19:08:08 +0200
committerLudovic Courtès <ludo@gnu.org>2016-08-04 19:38:33 +0200
commitd77a0bd6f1aa709fcec1041fcdde33942335d75b (patch)
tree98739b113d27c1372bcc9caada79bc8000e0267d /gnu/system
parent44210f84e274a3dd59da15d7bd2bd5f30f97efb4 (diff)
ui: Remove dependency on (gnu system file-systems).
* guix/ui.scm (specification->file-system-mapping): Move to... * gnu/system/file-systems.scm (specification->file-system-mapping): ... here.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/file-systems.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index f4cfaf0990..116e2813e8 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -40,6 +40,7 @@
file-system-dependencies
file-system->spec
+ specification->file-system-mapping
uuid
%fuse-control-file-system
@@ -105,6 +106,23 @@ initrd code."
(($ <file-system> device title mount-point type flags options _ _ check?)
(list device title mount-point type flags options check?))))
+(define (specification->file-system-mapping spec writable?)
+ "Read the SPEC and return the corresponding <file-system-mapping>. SPEC is
+a string of the form \"SOURCE\" or \"SOURCE=TARGET\". The former specifies
+that SOURCE from the host should be mounted at SOURCE in the other system.
+The latter format specifies that SOURCE from the host should be mounted at
+TARGET in the other system."
+ (let ((index (string-index spec #\=)))
+ (if index
+ (file-system-mapping
+ (source (substring spec 0 index))
+ (target (substring spec (+ 1 index)))
+ (writable? writable?))
+ (file-system-mapping
+ (source spec)
+ (target spec)
+ (writable? writable?)))))
+
(define-syntax uuid
(lambda (s)
"Return the bytevector corresponding to the given UUID representation."