From 91622d4934b94dc28e6337ce2df907847bcf02ae Mon Sep 17 00:00:00 2001 From: Ammar Bandukwala Date: Tue, 23 Apr 2019 17:25:41 -0500 Subject: [PATCH] Add a flag that prints version information Resolves #51 --- ci/build.sh | 4 +++- main.go | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ci/build.sh b/ci/build.sh index ac2b405..da1565b 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -1,9 +1,11 @@ #!/bin/bash export GOARCH=amd64 +tag=$(git describe --tags) + build(){ tmpdir=$(mktemp -d) - go build -o $tmpdir/sshcode + go build -ldflags "-X main.version=${tag}" -o $tmpdir/sshcode pushd $tmpdir tarname=sshcode-$GOOS-$GOARCH.tar diff --git a/main.go b/main.go index 0dc40b8..c31b93d 100644 --- a/main.go +++ b/main.go @@ -55,11 +55,15 @@ func flagHelp() string { return bd.String() } +// version is overwritten by ci/build.sh. +var version string + func main() { var ( skipSyncFlag = flag.Bool("skipsync", false, "skip syncing local settings and extensions to remote host") sshFlags = flag.String("ssh-flags", "", "custom SSH flags") syncBack = flag.Bool("b", false, "sync extensions back on termination") + printVersion = flag.Bool("version", false, "print version information and exit") ) flag.Usage = func() { @@ -81,6 +85,11 @@ Arguments: } flag.Parse() + if *printVersion { + fmt.Printf("%v\n", version) + os.Exit(0) + } + host := flag.Arg(0) if host == "" {