Add -u short option for --url and support port number only.
[src/xds/xds-cli.git] / cmd-misc.go
1 package main
2
3 import (
4         "fmt"
5
6         "github.com/iotbzh/xds-agent/lib/xaapiv1"
7         "github.com/urfave/cli"
8 )
9
10 func initCmdMisc(cmdDef *[]cli.Command) {
11         *cmdDef = append(*cmdDef, cli.Command{
12                 Name:     "misc",
13                 HideHelp: true,
14                 Usage:    "miscellaneous commands group",
15                 Subcommands: []cli.Command{
16                         {
17                                 Name:    "version",
18                                 Aliases: []string{"v"},
19                                 Usage:   "Get version of XDS agent and XDS server",
20                                 Action:  xdsVersion,
21                                 Flags: []cli.Flag{
22                                         cli.BoolFlag{
23                                                 Name:  "verbose, v",
24                                                 Usage: "display verbose output",
25                                         },
26                                 },
27                         },
28                 },
29         })
30 }
31
32 func xdsVersion(ctx *cli.Context) error {
33         verbose := ctx.Bool("verbose")
34
35         // Get version
36         ver := xaapiv1.XDSVersion{}
37         if err := XdsVersionGet(&ver); err != nil {
38                 return cli.NewExitError(err.Error(), 1)
39         }
40
41         writer := NewTableWriter()
42         fmt.Fprintln(writer, "Agent:")
43         fmt.Fprintln(writer, "      ID:\t", ver.Client.ID)
44         v := ver.Client.Version
45         if verbose {
46                 v += " (" + ver.Client.VersionGitTag + ")"
47         }
48         fmt.Fprintln(writer, "      Version:\t", v)
49         if verbose {
50                 fmt.Fprintln(writer, "      API Version:\t", ver.Client.APIVersion)
51         }
52
53         for _, svr := range ver.Server {
54                 fmt.Fprintln(writer, "Server:")
55                 fmt.Fprintln(writer, "       ID:\t", svr.ID)
56                 v = svr.Version
57                 if verbose {
58                         v += " (" + svr.VersionGitTag + ")"
59                 }
60                 fmt.Fprintln(writer, "       Version:\t", v)
61                 if verbose {
62                         fmt.Fprintln(writer, "       API Version:\t", svr.APIVersion)
63                 }
64         }
65         writer.Flush()
66
67         return nil
68 }