func run(args []string) (err error) { // If invoked with a single "--help" argument, print a usage message and exit // successfully. if len(args) == 2 && args[1] == "--help" { fmt.Fprintf( os.Stderr, "Usage: %s [-o options] bucket_name mount_point\n", args[0]) return } // Find the path to gcsfuse. gcsfusePath, err := findGcsfuse() if err != nil { err = fmt.Errorf("findGcsfuse: %v", err) return } // Find the path to fusermount. fusermountPath, err := findFusermount() if err != nil { err = fmt.Errorf("findFusermount: %v", err) return } // Attempt to parse arguments. device, mountPoint, opts, err := parseArgs(args) if err != nil { err = fmt.Errorf("parseArgs: %v", err) return } // Choose gcsfuse args. gcsfuseArgs, err := makeGcsfuseArgs(device, mountPoint, opts) if err != nil { err = fmt.Errorf("makeGcsfuseArgs: %v", err) return } fmt.Fprintf( os.Stderr, "Calling gcsfuse with arguments: %s\n", strings.Join(gcsfuseArgs, " ")) // Call gcsfuse and wait for it to successfully mount. err = daemon.Mount( gcsfusePath, fusermountPath, gcsfuseArgs, os.Stderr) if err != nil { err = fmt.Errorf("daemon.Mount: %v", err) return } return }
// Call gcsfuse with the supplied args, waiting for it to mount. Return nil // only if it mounts successfully. func (t *GcsfuseTest) mount(args []string) (err error) { err = daemon.Mount(t.gcsfusePath, gFusermountPath, args, ioutil.Discard) return }