Merge branch 'master' into 13822-nm-delayed-daemon
[arvados.git] / lib / cmd / cmd.go
index 353167e80080cad13bac71d10eb1d33d3dd7034b..8c65cf7acf1b6dd7bc02660464be06ea07cc3daa 100644 (file)
@@ -52,19 +52,15 @@ func (v Version) RunCommand(prog string, args []string, stdin io.Reader, stdout,
 type Multi map[string]Handler
 
 func (m Multi) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
-       if len(args) < 1 {
-               fmt.Fprintf(stderr, "usage: %s command [args]\n", prog)
-               m.Usage(stderr)
-               return 2
-       }
        _, basename := filepath.Split(prog)
-       if strings.HasPrefix(basename, "arvados-") {
-               basename = basename[8:]
-       } else if strings.HasPrefix(basename, "crunch-") {
-               basename = basename[7:]
-       }
+       basename = strings.TrimPrefix(basename, "arvados-")
+       basename = strings.TrimPrefix(basename, "crunch-")
        if cmd, ok := m[basename]; ok {
                return cmd.RunCommand(prog, args, stdin, stdout, stderr)
+       } else if len(args) < 1 {
+               fmt.Fprintf(stderr, "usage: %s command [args]\n", prog)
+               m.Usage(stderr)
+               return 2
        } else if cmd, ok = m[args[0]]; ok {
                return cmd.RunCommand(prog+" "+args[0], args[1:], stdin, stdout, stderr)
        } else {