package main
import (
- "flag"
- "fmt"
- "io"
"os"
- "regexp"
- "runtime"
- "git.curoverse.com/arvados.git/lib/cli"
- "git.curoverse.com/arvados.git/lib/cmd"
- "rsc.io/getopt"
+ "git.arvados.org/arvados.git/lib/cli"
+ "git.arvados.org/arvados.git/lib/cmd"
+ "git.arvados.org/arvados.git/lib/costanalyzer"
+ "git.arvados.org/arvados.git/lib/deduplicationreport"
+ "git.arvados.org/arvados.git/lib/diagnostics"
+ "git.arvados.org/arvados.git/lib/mount"
)
-var version = "dev"
+var (
+ handler = cmd.Multi(map[string]cmd.Handler{
+ "-e": cmd.Version,
+ "version": cmd.Version,
+ "-version": cmd.Version,
+ "--version": cmd.Version,
-var Run = cmd.Multi(map[string]cmd.RunFunc{
- "get": cli.Get,
- "-e": cmdVersion,
- "version": cmdVersion,
- "-version": cmdVersion,
- "--version": cmdVersion,
-})
+ "copy": cli.Copy,
+ "create": cli.Create,
+ "edit": cli.Edit,
+ "get": cli.Get,
+ "keep": cli.Keep,
+ "tag": cli.Tag,
+ "ws": cli.Ws,
-func cmdVersion(prog string, args []string, _ io.Reader, stdout, _ io.Writer) int {
- prog = regexp.MustCompile(` -*version$`).ReplaceAllLiteralString(prog, "")
- fmt.Fprintf(stdout, "%s %s (%s)\n", prog, version, runtime.Version())
- return 0
-}
+ "api_client_authorization": cli.APICall,
+ "api_client": cli.APICall,
+ "authorized_key": cli.APICall,
+ "collection": cli.APICall,
+ "container": cli.APICall,
+ "container_request": cli.APICall,
+ "group": cli.APICall,
+ "human": cli.APICall,
+ "job": cli.APICall,
+ "job_task": cli.APICall,
+ "keep_disk": cli.APICall,
+ "keep_service": cli.APICall,
+ "link": cli.APICall,
+ "log": cli.APICall,
+ "node": cli.APICall,
+ "pipeline_instance": cli.APICall,
+ "pipeline_template": cli.APICall,
+ "repository": cli.APICall,
+ "specimen": cli.APICall,
+ "trait": cli.APICall,
+ "user_agreement": cli.APICall,
+ "user": cli.APICall,
+ "virtual_machine": cli.APICall,
+ "workflow": cli.APICall,
+
+ "mount": mount.Command,
+ "deduplication-report": deduplicationreport.Command,
+ "costanalyzer": costanalyzer.Command,
+ "shell": shellCommand{},
+ "connect-ssh": connectSSHCommand{},
+ "diagnostics": diagnostics.Command{},
+ })
+)
func fixLegacyArgs(args []string) []string {
- flags := getopt.NewFlagSet("", flag.ContinueOnError)
- flags.Bool("dry-run", false, "dry run")
- flags.Alias("n", "dry-run")
- flags.String("format", "json", "output format")
- flags.Alias("f", "format")
- flags.Bool("short", false, "short")
- flags.Alias("s", "short")
- flags.Bool("verbose", false, "verbose")
- flags.Alias("v", "verbose")
+ flags, _ := cli.LegacyFlagSet()
return cmd.SubcommandToFront(args, flags)
}
func main() {
- os.Exit(Run(os.Args[0], fixLegacyArgs(os.Args[1:]), os.Stdin, os.Stdout, os.Stderr))
+ os.Exit(handler.RunCommand(os.Args[0], fixLegacyArgs(os.Args[1:]), os.Stdin, os.Stdout, os.Stderr))
}