mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-20 02:21:48 +08:00
fix osx mounting version checks
This commit is contained in:
@ -5,6 +5,8 @@ import (
|
||||
"runtime"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
fuseversion "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-fuse-version"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -18,11 +20,17 @@ func darwinFuseCheckVersion() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
ov, err := syscall.Sysctl("osxfuse.version.number")
|
||||
ov, err := tryGFV()
|
||||
if err != nil {
|
||||
return err
|
||||
log.Debug(err)
|
||||
ov, err = trySysctl()
|
||||
if err != nil {
|
||||
log.Debug(err)
|
||||
return fmt.Errorf("cannot determine osxfuse version. is it installed?")
|
||||
}
|
||||
}
|
||||
|
||||
log.Debug("mount: osxfuse version:", ov)
|
||||
if strings.HasPrefix(ov, "2.7.") || strings.HasPrefix(ov, "2.8.") {
|
||||
return nil
|
||||
}
|
||||
@ -31,3 +39,29 @@ func darwinFuseCheckVersion() error {
|
||||
"Older versions of osxfuse have kernel panic bugs; please upgrade!",
|
||||
"https://github.com/jbenet/go-ipfs/issues/177")
|
||||
}
|
||||
|
||||
func tryGFV() (string, error) {
|
||||
sys, err := fuseversion.LocalFuseSystems()
|
||||
if err != nil {
|
||||
log.Debug("mount: fuseversion:", "failed")
|
||||
return "", err
|
||||
}
|
||||
|
||||
for _, s := range *sys {
|
||||
v := s.AgentVersion
|
||||
log.Debug("mount: fuseversion:", v)
|
||||
return v, nil
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("fuseversion: no system found")
|
||||
}
|
||||
|
||||
func trySysctl() (string, error) {
|
||||
v, err := syscall.Sysctl("osxfuse.version.number")
|
||||
if err != nil {
|
||||
log.Debug("mount: sysctl osxfuse.version.number:", "failed")
|
||||
return "", err
|
||||
}
|
||||
log.Debug("mount: sysctl osxfuse.version.number:", v)
|
||||
return v, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user