From c35d7a0fc8bbb1f9123bb41a7b66e45ea2564dd2 Mon Sep 17 00:00:00 2001 From: Sebastien Douheret Date: Fri, 3 Nov 2017 18:32:24 +0100 Subject: Initial commit Signed-off-by: Sebastien Douheret --- cmd-misc.go | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 cmd-misc.go (limited to 'cmd-misc.go') 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 +} -- cgit 1.2.3-korg