aboutsummaryrefslogtreecommitdiffstats
path: root/cmd-misc.go
diff options
context:
space:
mode:
authorSebastien Douheret <sebastien.douheret@iot.bzh>2017-11-03 18:32:24 +0100
committerSebastien Douheret <sebastien.douheret@iot.bzh>2017-11-06 15:35:18 +0100
commitc35d7a0fc8bbb1f9123bb41a7b66e45ea2564dd2 (patch)
tree38e0ab51a68548bb61cf6ca0de01a268f41a5701 /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.go66
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
+}