From 4a9de3218e6445742f29fef06f8b2f1dcef6306f Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 24 May 2018 01:52:22 +0200 Subject: [PATCH] Add undocumented --version flag --- Makefile | 12 ++++++++++-- main.go | 5 +++++ version.go | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 version.go diff --git a/Makefile b/Makefile index 4cba1de..93874e9 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,14 @@ export GOPATH := $(CURDIR)/.gopath export PATH := $(PATH):$(CURDIR)/.gopath/bin GO_IMPORT_PATH := git.zx2c4.com/wireguard-go +version.go: + @export GIT_CEILING_DIRECTORIES="$(realpath $(CURDIR)/..)" && \ + tag="$$(git describe --dirty 2>/dev/null)" && \ + ver="$$(printf 'package main\nconst WireGuardGoVersion = "%s"\n' "$$tag")" && \ + [ "$$(cat $@ 2>/dev/null)" != "$$ver" ] && \ + echo "$$ver" > $@ && \ + git update-index --assume-unchanged $@ || true + .gopath/.created: rm -rf .gopath mkdir -p $(dir .gopath/src/$(GO_IMPORT_PATH)) @@ -27,7 +35,7 @@ vendor/.created: Gopkg.toml Gopkg.lock | .gopath/.created cd .gopath/src/$(GO_IMPORT_PATH) && dep ensure -vendor-only -v touch $@ -wireguard-go: $(wildcard *.go) $(wildcard */*.go) .gopath/.created vendor/.created +wireguard-go: $(wildcard *.go) $(wildcard */*.go) .gopath/.created vendor/.created version.go go build $(GO_BUILD_EXTRA_ARGS) -v $(GO_IMPORT_PATH) install: wireguard-go @@ -40,4 +48,4 @@ update-dep: | .gopath/.created command -v dep >/dev/null || go get -v github.com/golang/dep/cmd/dep cd .gopath/src/$(GO_IMPORT_PATH) && dep ensure -update -v -.PHONY: clean install update-dep +.PHONY: clean install update-dep version.go diff --git a/main.go b/main.go index 29693eb..f21de41 100644 --- a/main.go +++ b/main.go @@ -74,6 +74,11 @@ func warning() { } func main() { + if len(os.Args) == 2 && os.Args[1] == "--version" { + fmt.Printf("wireguard-go v%s\n\nUserspace WireGuard daemon for %s-%s.\nInformation available at https://www.wireguard.com.\nCopyright (C) Jason A. Donenfeld .\n", WireGuardGoVersion, runtime.GOOS, runtime.GOARCH) + return + } + warning() // parse arguments diff --git a/version.go b/version.go new file mode 100644 index 0000000..25edead --- /dev/null +++ b/version.go @@ -0,0 +1,2 @@ +package main +const WireGuardGoVersion = "0.0.20180519"