16573: add a deduplication-report command to arvados-client
[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/deduplicationreport"
13         "git.arvados.org/arvados.git/lib/mount"
14 )
15
16 var (
17         handler = cmd.Multi(map[string]cmd.Handler{
18                 "-e":        cmd.Version,
19                 "version":   cmd.Version,
20                 "-version":  cmd.Version,
21                 "--version": cmd.Version,
22
23                 "copy":   cli.Copy,
24                 "create": cli.Create,
25                 "edit":   cli.Edit,
26                 "get":    cli.Get,
27                 "keep":   cli.Keep,
28                 "tag":    cli.Tag,
29                 "ws":     cli.Ws,
30
31                 "api_client_authorization": cli.APICall,
32                 "api_client":               cli.APICall,
33                 "authorized_key":           cli.APICall,
34                 "collection":               cli.APICall,
35                 "container":                cli.APICall,
36                 "container_request":        cli.APICall,
37                 "group":                    cli.APICall,
38                 "human":                    cli.APICall,
39                 "job":                      cli.APICall,
40                 "job_task":                 cli.APICall,
41                 "keep_disk":                cli.APICall,
42                 "keep_service":             cli.APICall,
43                 "link":                     cli.APICall,
44                 "log":                      cli.APICall,
45                 "node":                     cli.APICall,
46                 "pipeline_instance":        cli.APICall,
47                 "pipeline_template":        cli.APICall,
48                 "repository":               cli.APICall,
49                 "specimen":                 cli.APICall,
50                 "trait":                    cli.APICall,
51                 "user_agreement":           cli.APICall,
52                 "user":                     cli.APICall,
53                 "virtual_machine":          cli.APICall,
54                 "workflow":                 cli.APICall,
55
56                 "mount":                mount.Command,
57                 "deduplication-report": deduplicationreport.Command,
58         })
59 )
60
61 func fixLegacyArgs(args []string) []string {
62         flags, _ := cli.LegacyFlagSet()
63         return cmd.SubcommandToFront(args, flags)
64 }
65
66 func main() {
67         os.Exit(handler.RunCommand(os.Args[0], fixLegacyArgs(os.Args[1:]), os.Stdin, os.Stdout, os.Stderr))
68 }