X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/51bb28e3e62563fa0921f003b8d11ce8740f3a68..67d3cbd984c8220d9bce0b7e36e49c9a55cf8bd2:/cmd/arvados-client/cmd.go diff --git a/cmd/arvados-client/cmd.go b/cmd/arvados-client/cmd.go index 73d772a578..bcc3dda09a 100644 --- a/cmd/arvados-client/cmd.go +++ b/cmd/arvados-client/cmd.go @@ -5,47 +5,64 @@ 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/deduplicationreport" + "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, + }) +) 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)) }