From 6dd7678e6435a0258dd0ed0f76f1e9090f03c003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Tue, 24 Aug 2021 07:02:12 +0300 Subject: [PATCH] add version info to the binary --- Makefile | 33 +++++++++++++++++---------------- README.md | 6 +----- main.go | 13 ++++++++++++- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index ad42f7a..0c7d203 100644 --- a/Makefile +++ b/Makefile @@ -2,19 +2,24 @@ GODEPS = $(shell git ls-files '*.go' go.mod go.sum) GOBIN = $(shell go env GOPATH)/bin/ GOOSARCHS = $(sort \ - linux/amd64 \ - linux/arm64 \ - darwin/amd64 \ - darwin/arm64 \ - windows/amd64/.exe \ - ) + darwin/amd64 \ + darwin/arm64 \ + linux/amd64 \ + linux/arm64 \ + windows/amd64/.exe \ + windows/arm64/.exe) -VERSION = $(shell git describe --dirty) -LDFLAGS = -ldflags "-X main.Version=$(VERSION)" +VSN = $(shell git describe --dirty) +VSNHASH = $(shell git rev-parse --verify HEAD) +LDFLAGS = -ldflags "-X main.Version=$(VSN) -X main.VersionHash=$(VSNHASH)" + +.PHONY: test +test: + go test -race -cover ./... define undockertarget -UNDOCKERS += undocker-$(1)-$(2)-$(VERSION)-$(firstword $(3)) -undocker-$(1)-$(2)-$(VERSION)$(firstword $(3)): $(GODEPS) +UNDOCKERS += undocker-$(1)-$(2)-$(VSN)$(firstword $(3)) +undocker-$(1)-$(2)-$(VSN)$(firstword $(3)): $(GODEPS) CGO_ENABLED=0 GOOS=$(1) GOARCH=$(2) go build $(LDFLAGS) -o $$@ endef @@ -22,11 +27,7 @@ $(foreach goosarch,$(GOOSARCHS),\ $(eval $(call undockertarget,$(word 1,$(subst /, ,$(goosarch))),$(word 2,$(subst /, ,$(goosarch))),$(word 3,$(subst /, ,$(goosarch)))))) .PHONY: all -all: $(UNDOCKERS) coverage.html - -.PHONY: test -test: - go test -race -cover ./... +all: $(UNDOCKERS) .PHONY: lint lint: vet staticcheck @@ -54,4 +55,4 @@ sha256sum.txt.asc: sha256sum.txt .PHONY: clean clean: - rm -f $(UNDOCKERS) coverage.html sha256sum.txt sha256sum.txt.asc + rm -f undocker-*-v* coverage.html sha256sum.txt sha256sum.txt.asc diff --git a/README.md b/README.md index f11cbc0..142715d 100644 --- a/README.md +++ b/README.md @@ -80,11 +80,7 @@ Similar Projects Changelog --------- -**1.0.1** - -* bugfix: add missing error check when opening the tarball. - -**1.0** +**v1.0** * initial release: `rootfs.Flatten` and a simple command-line application. diff --git a/main.go b/main.go index 73c7801..774b98b 100644 --- a/main.go +++ b/main.go @@ -11,6 +11,9 @@ import ( "git.sr.ht/~motiejus/undocker/rootfs" ) +var Version = "unknown" +var VersionHash = "unknown" + const _usage = `Usage: %s @@ -19,13 +22,21 @@ Flatten a Docker container image to a root file system. Arguments: : Input Docker container. Tarball. : Output tarball, the root file system. '-' is stdout. + +undocker %s (%s) +Built with %s ` func main() { runtime.GOMAXPROCS(1) // no need to create that many threads if len(os.Args) != 3 { - fmt.Fprintf(os.Stderr, _usage, filepath.Base(os.Args[0])) + fmt.Fprintf(os.Stderr, _usage, + filepath.Base(os.Args[0]), + Version, + VersionHash, + runtime.Version(), + ) os.Exit(1) }