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 == "" {