diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-11-03 18:32:24 +0100 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-11-06 15:35:18 +0100 |
commit | c35d7a0fc8bbb1f9123bb41a7b66e45ea2564dd2 (patch) | |
tree | 38e0ab51a68548bb61cf6ca0de01a268f41a5701 /cmd-misc.go |
Initial commitv0.0.1
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Diffstat (limited to 'cmd-misc.go')
-rw-r--r-- | cmd-misc.go | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/cmd-misc.go b/cmd-misc.go new file mode 100644 index 0000000..b4b579d --- /dev/null +++ b/cmd-misc.go @@ -0,0 +1,66 @@ +package main + +import ( + "fmt" + + "github.com/iotbzh/xds-agent/lib/apiv1" + "github.com/urfave/cli" +) + +func initCmdMisc(cmdDef *[]cli.Command) { + *cmdDef = append(*cmdDef, cli.Command{ + Name: "misc", + HideHelp: true, + Usage: "miscellaneous commands group", + Subcommands: []cli.Command{ + { + Name: "version", + Aliases: []string{"v"}, + Usage: "Get version of XDS agent and XDS server", + Action: xdsVersion, + Flags: []cli.Flag{ + cli.BoolFlag{ + Name: "verbose, v", + Usage: "display verbose output", + }, + }, + }, + }, + }) +} + +func xdsVersion(ctx *cli.Context) error { + verbose := ctx.Bool("verbose") + + // Get version + ver := apiv1.XDSVersion{} + if err := XdsVersionGet(&ver); err != nil { + return cli.NewExitError(err.Error(), 1) + } + + writer := NewTableWriter() + fmt.Fprintln(writer, "Agent ID:\t", ver.Client.ID) + v := ver.Client.Version + if verbose { + v += " (" + ver.Client.VersionGitTag + ")" + } + fmt.Fprintln(writer, " Version:\t", v) + if verbose { + fmt.Fprintln(writer, " API Version:\t", ver.Client.APIVersion) + } + + for _, svr := range ver.Server { + fmt.Fprintln(writer, "Server ID:\t", svr.ID) + v = svr.Version + if verbose { + v += " (" + svr.VersionGitTag + ")" + } + fmt.Fprintln(writer, " Version:\t", v) + if verbose { + fmt.Fprintln(writer, " API Version:\t", svr.APIVersion) + } + } + writer.Flush() + + return nil +} |