@cryptotaxi247 / kubo / commits / ca1bf2674

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 +}