X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/45cc809dfeab1d603e80cec3d44770d7f5a7c8ae..11f4d90ff07de3557a86d78cb8623ad059633d04:/lib/mount/command.go diff --git a/lib/mount/command.go b/lib/mount/command.go index e92af24075..f88d977c4c 100644 --- a/lib/mount/command.go +++ b/lib/mount/command.go @@ -9,19 +9,21 @@ import ( "io" "log" "net/http" + // pprof is only imported to register its HTTP handlers _ "net/http/pprof" "os" + "git.arvados.org/arvados.git/lib/cmd" "git.arvados.org/arvados.git/sdk/go/arvados" "git.arvados.org/arvados.git/sdk/go/arvadosclient" "git.arvados.org/arvados.git/sdk/go/keepclient" "github.com/arvados/cgofuse/fuse" ) -var Command = &cmd{} +var Command = &mountCommand{} -type cmd struct { +type mountCommand struct { // ready, if non-nil, will be closed when the mount is // initialized. If ready is non-nil, it RunCommand() should // not be called more than once, or when ready is already @@ -36,17 +38,15 @@ type cmd struct { // // The "-d" fuse option (and perhaps other features) ignores the // stderr argument and prints to os.Stderr instead. -func (c *cmd) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int { +func (c *mountCommand) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int { logger := log.New(stderr, prog+" ", 0) flags := flag.NewFlagSet(prog, flag.ContinueOnError) ro := flags.Bool("ro", false, "read-only") experimental := flags.Bool("experimental", false, "acknowledge this is an experimental command, and should not be used in production (required)") blockCache := flags.Int("block-cache", 4, "read cache size (number of 64MiB blocks)") pprof := flags.String("pprof", "", "serve Go profile data at `[addr]:port`") - err := flags.Parse(args) - if err != nil { - logger.Print(err) - return 2 + if ok, code := cmd.ParseFlags(flags, prog, args, "[FUSE mount options]", stderr); !ok { + return code } if !*experimental { logger.Printf("error: experimental command %q used without --experimental flag", prog)