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
This commit is contained in:
Jakob Unterwurzacher 2018-01-16 22:59:43 +01:00
parent a4dff6aea0
commit 7d477d692b
2 changed files with 8 additions and 1 deletions

View File

@ -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 {

View File

@ -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)