summary refs log tree commit diff
path: root/gnu/system/file-systems.scm
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/file-systems.scm
parent44210f84e274a3dd59da15d7bd2bd5f30f97efb4 (diff)
downloadguix-d77a0bd6f1aa709fcec1041fcdde33942335d75b.tar.gz
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/file-systems.scm')
-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."