19146: Add can_write/can_manage to users#list, fix select=can_*.
[arvados.git] / lib / cli / external.go
index ba85aae9eaff654759c9eae1b3951264000d5cf2..7d9bb6f200253405b15fbd3edaed82132efe61e4 100644 (file)
@@ -12,7 +12,7 @@ import (
        "strings"
        "syscall"
 
-       "git.curoverse.com/arvados.git/lib/cmd"
+       "git.arvados.org/arvados.git/lib/cmd"
 )
 
 var (
@@ -22,7 +22,6 @@ var (
        Copy = externalCmd{"arv-copy"}
        Tag  = externalCmd{"arv-tag"}
        Ws   = externalCmd{"arv-ws"}
-       Run  = externalCmd{"arv-run"}
 
        Keep = cmd.Multi(map[string]cmd.Handler{
                "get":       externalCmd{"arv-get"},
@@ -31,9 +30,6 @@ var (
                "normalize": externalCmd{"arv-normalize"},
                "docker":    externalCmd{"arv-keepdocker"},
        })
-       Pipeline = cmd.Multi(map[string]cmd.Handler{
-               "run": externalCmd{"arv-run-pipeline-instance"},
-       })
        // user, group, container, specimen, etc.
        APICall = apiCallCmd{}
 )
@@ -92,8 +88,33 @@ func (ec externalCmd) RunCommand(prog string, args []string, stdin io.Reader, st
                }
                fmt.Fprintf(stderr, "%s failed: %s\n", ec.prog, err)
                return 1
+       case *exec.Error:
+               fmt.Fprintln(stderr, err)
+               if ec.prog == "arv" {
+                       fmt.Fprint(stderr, rubyInstallHints)
+               } else if strings.HasPrefix(ec.prog, "arv-") {
+                       fmt.Fprint(stderr, pythonInstallHints)
+               }
+               return 1
        default:
                fmt.Fprintf(stderr, "error running %s: %s\n", ec.prog, err)
                return 1
        }
 }
+
+var (
+       rubyInstallHints = `
+Note: This subcommand uses the arvados-cli Ruby gem. If that is not
+installed, try "gem install arvados-cli", or see
+https://doc.arvados.org/install for more details.
+
+`
+       pythonInstallHints = `
+Note: This subcommand uses the "arvados" Python module. If that is
+not installed, try:
+* "pip install arvados" (either as root or in a virtualenv), or
+* "sudo apt-get install python3-arvados-python-client", or
+* see https://doc.arvados.org/install for more details.
+
+`
+)