17609: Add diagnostics command.
[arvados.git] / lib / costanalyzer / cmd.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: Apache-2.0
4
5 package costanalyzer
6
7 import (
8         "io"
9
10         "git.arvados.org/arvados.git/lib/cmd"
11         "git.arvados.org/arvados.git/lib/config"
12         "git.arvados.org/arvados.git/sdk/go/ctxlog"
13 )
14
15 var Command command
16
17 type command struct{}
18
19 // RunCommand implements the subcommand "costanalyzer <collection> <collection> ..."
20 func (command) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
21         var err error
22         logger := ctxlog.New(stderr, "text", "info")
23         logger.SetFormatter(cmd.NoPrefixFormatter{})
24         defer func() {
25                 if err != nil {
26                         logger.Error("\n" + err.Error() + "\n")
27                 }
28         }()
29
30         loader := config.NewLoader(stdin, logger)
31         loader.SkipLegacy = true
32
33         exitcode, err := costanalyzer(prog, args, loader, logger, stdout, stderr)
34
35         return exitcode
36 }