mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-20 10:42:11 +08:00
fix osx mounting version checks
This commit is contained in:
@ -5,6 +5,8 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
|
fuseversion "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-fuse-version"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -18,11 +20,17 @@ func darwinFuseCheckVersion() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
ov, err := syscall.Sysctl("osxfuse.version.number")
|
ov, err := tryGFV()
|
||||||
if err != nil {
|
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.") {
|
if strings.HasPrefix(ov, "2.7.") || strings.HasPrefix(ov, "2.8.") {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -31,3 +39,29 @@ func darwinFuseCheckVersion() error {
|
|||||||
"Older versions of osxfuse have kernel panic bugs; please upgrade!",
|
"Older versions of osxfuse have kernel panic bugs; please upgrade!",
|
||||||
"https://github.com/jbenet/go-ipfs/issues/177")
|
"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