check osxfuse version. Fixes #202.
Juan Batiz-Benet committed
Oct 31, 2014 at 10:10 UTC
ca1bf2674420e5ba992987c5a638b78009b46c5f
1 file changed
+26
cmd/ipfs/mount_unix.go
+26
@@ -4,6 +4,9 @@ package main
4
5
import (
6
"fmt"
7
+ "runtime"
8
+ "strings"
9
+ "syscall"
10
11
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/gonuts/flag"
12
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/commander"
@@ -33,6 +36,9 @@ func init() {
36
}
37
38
func mountCmd(c *commander.Command, inp []string) error {
39
+ if err := osxFuseCheck(); err != nil {
40
+ return err
41
+ }
42
43
cc, err := setupCmdContext(c, true)
44
if err != nil {
@@ -92,3 +98,23 @@ func mountIpns(node *core.IpfsNode, nsdir, fsdir string) <-chan error {
98
99
return done
100
}
101
+
102
+func osxFuseCheck() error {
103
+ // on OSX, check FUSE version.
104
+ if runtime.GOOS != "darwin" {
105
+ return nil
106
+ }
107
+
108
+ ov, err := syscall.Sysctl("osxfuse.version.number")
109
+ if err != nil {
110
+ return err
111
+ }
112
+
113
+ if strings.HasPrefix(ov, "2.7.") || strings.HasPrefix(ov, "2.8.") {
114
+ return nil
115
+ }
116
+
117
+ return fmt.Errorf("osxfuse version %s not supported.\n%s\n%s", ov,
118
+ "Older versions of osxfuse have kernel panic bugs; please upgrade!",
119
+ "https://github.com/jbenet/go-ipfs/issues/177")
120
+}