diff options
Diffstat (limited to 'weed/command/weedfuse/weedfuse.go')
| -rw-r--r-- | weed/command/weedfuse/weedfuse.go | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/weed/command/weedfuse/weedfuse.go b/weed/command/weedfuse/weedfuse.go deleted file mode 100644 index 4c0d12874..000000000 --- a/weed/command/weedfuse/weedfuse.go +++ /dev/null @@ -1,109 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "os" - "strings" - - "github.com/chrislusf/seaweedfs/weed/command" - "github.com/chrislusf/seaweedfs/weed/glog" - "github.com/jacobsa/daemonize" - "github.com/kardianos/osext" -) - -var ( - fuseCommand = flag.NewFlagSet("weedfuse", flag.ContinueOnError) - options = fuseCommand.String("o", "", "comma separated options rw,uid=xxx,gid=xxx") - isForeground = fuseCommand.Bool("foreground", false, "starts as a daemon") -) - -func main() { - - err := fuseCommand.Parse(os.Args[1:]) - if err != nil { - glog.Fatal(err) - } - fmt.Printf("options: %v\n", *options) - - // seems this value is always empty, need to parse it differently - optionsString := *options - prev := "" - for i, arg := range os.Args { - fmt.Printf("args[%d]: %v\n", i, arg) - if prev == "-o" { - optionsString = arg - } - prev = arg - } - - device := fuseCommand.Arg(0) - mountPoint := fuseCommand.Arg(1) - - fmt.Printf("source: %v\n", device) - fmt.Printf("target: %v\n", mountPoint) - - nouser := true - for _, option := range strings.Split(optionsString, ",") { - fmt.Printf("option: %v\n", option) - switch option { - case "user": - nouser = false - } - } - - maybeSetupPath() - - if !*isForeground { - startAsDaemon() - return - } - - parts := strings.SplitN(device, "/", 2) - filer, filerPath := parts[0], parts[1] - - command.RunMount( - filer, "/"+filerPath, mountPoint, "", "000", "", - 4, !nouser, 0, 1000000) - -} - -func maybeSetupPath() { - // sudo mount -av may not include PATH in some linux, e.g., Ubuntu - hasPathEnv := false - for _, e := range os.Environ() { - if strings.HasPrefix(e, "PATH=") { - hasPathEnv = true - } - fmt.Println(e) - } - if !hasPathEnv { - os.Setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin") - } -} - -func startAsDaemon() { - - // adapted from gcsfuse - - // Find the executable. - var path string - path, err := osext.Executable() - if err != nil { - glog.Fatalf("osext.Executable: %v", err) - } - - // Set up arguments. Be sure to use foreground mode. - args := append([]string{"-foreground"}, os.Args[1:]...) - - // Pass along PATH so that the daemon can find fusermount on Linux. - env := []string{ - fmt.Sprintf("PATH=%s", os.Getenv("PATH")), - } - - err = daemonize.Run(path, args, env, os.Stdout) - if err != nil { - glog.Fatalf("daemonize.Run: %v", err) - } - -} |
