aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2018-01-16 22:59:43 +0100
committerJakob Unterwurzacher2018-01-16 23:18:53 +0100
commit7d477d692b68a2be86ec66846fe23b2cfb15d3f0 (patch)
tree66d825c5c21de7451f7a0f8c3e7abd49dd259402
parenta4dff6aea0b761a49ba3f3b6f25b7442c846afcf (diff)
MacOS: rely on OSXFuse to create mountpoint below /Volumes
OSXFuse automatically creates the mountpoint if it is below /Volumes because this would require root permissions which the user might not have. Reported at https://github.com/rfjakob/gocryptfs/issues/194
-rw-r--r--checkdir.go3
-rw-r--r--mount.go6
2 files changed, 8 insertions, 1 deletions
diff --git a/checkdir.go b/checkdir.go
index 6f7f75d..63dfef0 100644
--- a/checkdir.go
+++ b/checkdir.go
@@ -6,7 +6,8 @@ import (
"os"
)
-// checkDirEmpty - check if "dir" exists and is an empty directory
+// checkDirEmpty - check if "dir" exists and is an empty directory.
+// Returns an *os.PathError if Stat() on the path fails.
func checkDirEmpty(dir string) error {
err := checkDir(dir)
if err != nil {
diff --git a/mount.go b/mount.go
index c3fda80..6ee7c36 100644
--- a/mount.go
+++ b/mount.go
@@ -58,6 +58,12 @@ func doMount(args *argContainer) int {
err = checkDir(args.mountpoint)
} else {
err = checkDirEmpty(args.mountpoint)
+ // OSXFuse will create the mountpoint for us if it is below /Volumes/
+ if runtime.GOOS == "darwin" && os.IsNotExist(err) && strings.HasPrefix(args.mountpoint, "/Volumes/") {
+ tlog.Info.Printf("Mountpoint %q does not exist, but should be created by OSXFuse",
+ args.mountpoint)
+ err = nil
+ }
}
if err != nil {
tlog.Fatal.Printf("Invalid mountpoint: %v", err)