From fc5bd98d6508fd4bf6411389677bae9ca5cd7e3f Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Sun, 16 Oct 2016 08:56:34 +0100 Subject: [PATCH] Don't allow configurability for osxfuse paths. There's no need to complicate the API. If osxfuse makes a backwards-incompatible change again, we can add support for it. --- mount_config.go | 36 ++++++++++++++++-------------------- mount_darwin.go | 16 +++------------- 2 files changed, 19 insertions(+), 33 deletions(-) diff --git a/mount_config.go b/mount_config.go index 45d9546..ac3c1f3 100644 --- a/mount_config.go +++ b/mount_config.go @@ -135,14 +135,6 @@ type MountConfig struct { // default name involving the string 'osxfuse' is used. VolumeName string - // OS X only. - // - // OSXFUSELocations sets where to look for OSXFUSE files. The arguments are - // all the possible locations. The previous locations are replaced. - // - // Without this option, OSXFUSELocationV3 and OSXFUSELocationV2 are used. - OSXFUSELocations []OSXFUSEPaths - // Additional key=value options to pass unadulterated to the underlying mount // command. See `man 8 mount`, the fuse documentation, etc. for // system-specific information. @@ -258,18 +250,22 @@ type OSXFUSEPaths struct { DaemonVar string } -// Default paths for OSXFUSE. See OSXFUSELocations. var ( - OSXFUSELocationV3 = OSXFUSEPaths{ - DevicePrefix: "/dev/osxfuse", - Load: "/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse", - Mount: "/Library/Filesystems/osxfuse.fs/Contents/Resources/mount_osxfuse", - DaemonVar: "MOUNT_OSXFUSE_DAEMON_PATH", - } - OSXFUSELocationV2 = OSXFUSEPaths{ - DevicePrefix: "/dev/osxfuse", - Load: "/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs", - Mount: "/Library/Filesystems/osxfusefs.fs/Support/mount_osxfusefs", - DaemonVar: "MOUNT_FUSEFS_DAEMON_PATH", + osxfuseLocations = []OSXFUSEPaths{ + // v3 + { + DevicePrefix: "/dev/osxfuse", + Load: "/Library/Filesystems/osxfuse.fs/Contents/Resources/load_osxfuse", + Mount: "/Library/Filesystems/osxfuse.fs/Contents/Resources/mount_osxfuse", + DaemonVar: "MOUNT_OSXFUSE_DAEMON_PATH", + }, + + // v2 + { + DevicePrefix: "/dev/osxfuse", + Load: "/Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs", + Mount: "/Library/Filesystems/osxfusefs.fs/Support/mount_osxfusefs", + DaemonVar: "MOUNT_FUSEFS_DAEMON_PATH", + }, } ) diff --git a/mount_darwin.go b/mount_darwin.go index 97dc1a1..7bff85c 100644 --- a/mount_darwin.go +++ b/mount_darwin.go @@ -17,9 +17,7 @@ var errNoAvail = errors.New("no available fuse devices") var errNotLoaded = errors.New("osxfuse is not loaded") // errOSXFUSENotFound is returned from Mount when the OSXFUSE installation is -// not detected. -// -// Make sure OSXFUSE is installed, or see OSXFUSELocations for customization. +// not detected. Make sure OSXFUSE is installed. var errOSXFUSENotFound = errors.New("cannot locate OSXFUSE") func loadOSXFUSE(bin string) error { @@ -136,16 +134,8 @@ func mount( dir string, cfg *MountConfig, ready chan<- error) (dev *os.File, err error) { - // get OSXFUSE locations - locations := cfg.OSXFUSELocations - if locations == nil { - locations = []OSXFUSEPaths{ - OSXFUSELocationV3, - OSXFUSELocationV2, - } - } - - for _, loc := range locations { + // Find the version of osxfuse installed on this machine. + for _, loc := range osxfuseLocations { if _, err := os.Stat(loc.Mount); os.IsNotExist(err) { // try the other locations continue