Merge branch '16100-mime-types'
[arvados.git] / cmd / arvados-client / cmd.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: Apache-2.0
4
5 package main
6
7 import (
8         "os"
9
10         "git.arvados.org/arvados.git/lib/cli"
11         "git.arvados.org/arvados.git/lib/cmd"
12         "git.arvados.org/arvados.git/lib/mount"
13 )
14
15 var (
16         handler = cmd.Multi(map[string]cmd.Handler{
17                 "-e":        cmd.Version,
18                 "version":   cmd.Version,
19                 "-version":  cmd.Version,
20                 "--version": cmd.Version,
21
22                 "copy":   cli.Copy,
23                 "create": cli.Create,
24                 "edit":   cli.Edit,
25                 "get":    cli.Get,
26                 "keep":   cli.Keep,
27                 "tag":    cli.Tag,
28                 "ws":     cli.Ws,
29
30                 "api_client_authorization": cli.APICall,
31                 "api_client":               cli.APICall,
32                 "authorized_key":           cli.APICall,
33                 "collection":               cli.APICall,
34                 "container":                cli.APICall,
35                 "container_request":        cli.APICall,
36                 "group":                    cli.APICall,
37                 "human":                    cli.APICall,
38                 "job":                      cli.APICall,
39                 "job_task":                 cli.APICall,
40                 "keep_disk":                cli.APICall,
41                 "keep_service":             cli.APICall,
42                 "link":                     cli.APICall,
43                 "log":                      cli.APICall,
44                 "node":                     cli.APICall,
45                 "pipeline_instance":        cli.APICall,
46                 "pipeline_template":        cli.APICall,
47                 "repository":               cli.APICall,
48                 "specimen":                 cli.APICall,
49                 "trait":                    cli.APICall,
50                 "user_agreement":           cli.APICall,
51                 "user":                     cli.APICall,
52                 "virtual_machine":          cli.APICall,
53                 "workflow":                 cli.APICall,
54
55                 "mount": mount.Command,
56         })
57 )
58
59 func fixLegacyArgs(args []string) []string {
60         flags, _ := cli.LegacyFlagSet()
61         return cmd.SubcommandToFront(args, flags)
62 }
63
64 func main() {
65         os.Exit(handler.RunCommand(os.Args[0], fixLegacyArgs(os.Args[1:]), os.Stdin, os.Stdout, os.Stderr))
66 }