package main
import (
- "fmt"
- "io"
"os"
- "regexp"
- "runtime"
- "git.curoverse.com/arvados.git/lib/cli"
- "git.curoverse.com/arvados.git/lib/cmd"
+ "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.WithLateSubcommand(cmd.Multi(map[string]cmd.RunFunc{
- "get": cli.Get,
- "-e": cmdVersion,
- "version": cmdVersion,
- "-version": cmdVersion,
- "--version": cmdVersion,
-}), []string{"f", "format"}, []string{"n", "dry-run", "v", "verbose", "s", "short"})
+ "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, _ := cli.LegacyFlagSet()
+ return cmd.SubcommandToFront(args, flags)
}
func main() {
- os.Exit(Run(os.Args[0], 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))
}