From f13072cc038117e7cf970b6a084b5fd555fe7e22 Mon Sep 17 00:00:00 2001 From: Pavel Vorobyov Date: Tue, 8 Oct 2019 13:38:55 +0300 Subject: [PATCH] version --- .circleci/config.yml | 2 +- build.sh | 14 ++++++++++++++ cli/handlers.go | 5 +++++ cli/version.go | 19 +++++++++++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100755 build.sh create mode 100644 cli/version.go diff --git a/.circleci/config.yml b/.circleci/config.yml index b0c32b6..0b09e04 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,6 +8,6 @@ jobs: - checkout - run: name: Building XC - command: go build -o xc cmd/xc/main.go + command: ./build.sh - store_artifacts: path: /tmp/build/xc diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..97ae74e --- /dev/null +++ b/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +kname=`uname -s` +kver=`uname -r` +karch=`uname -m` +gitcommit=`git rev-list --tags --max-count=1` +appver=`git describe --tags $gitcommit` +appbuild=`git rev-list ${appver}.. --count` + +importroot="github.com/viert/xc/cli" + +go build -o xc \ + -ldflags="-X $importroot.appVersion=$appver -X $importroot.appBuild=$appbuild -X $importroot.kernelName=$kname -X $importroot.kernelVersion=$kver -X $importroot.kernelArch=$karch" \ + cmd/xc/main.go diff --git a/cli/handlers.go b/cli/handlers.go index cfd217e..fb3d052 100644 --- a/cli/handlers.go +++ b/cli/handlers.go @@ -50,6 +50,7 @@ func (c *Cli) setupCmdHandlers() { c.handlers["use_password_manager"] = c.doUsePasswordManager c.handlers["distribute_type"] = c.doDistributeType c.handlers["_passmgr_debug"] = c.doPassmgrDebug + c.handlers["version"] = c.doVersion commands := make([]string, len(c.handlers)) i := 0 @@ -60,6 +61,10 @@ func (c *Cli) setupCmdHandlers() { c.completer = newCompleter(c.store, commands) } +func (c *Cli) doVersion(name string, argsLine string, args ...string) { + term.Successf("XC version %s\n", version()) +} + func (c *Cli) doExit(name string, argsLine string, args ...string) { c.stopped = true } diff --git a/cli/version.go b/cli/version.go new file mode 100644 index 0000000..69472ac --- /dev/null +++ b/cli/version.go @@ -0,0 +1,19 @@ +package cli + +import "fmt" + +var ( + appVersion = "" + appBuild = "" + + kernelName = "" + kernelVersion = "" + kernelArch = "" +) + +func version() string { + if appVersion == "" { + return "dev" + } + return fmt.Sprintf("%s-%s (%s %s %s)", appVersion, appBuild, kernelName, kernelVersion, kernelArch) +}