From dbfed69ca90f5cd02b969fd714a35acc80f5f703 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Sun, 7 Aug 2022 01:00:42 +0700 Subject: cmd/gotp: add subcommand "version" The "version" command print the module version based on the latest tag, with additional commit number and hash. --- .gitignore | 1 + Makefile | 18 ++++++++++++++---- cmd/gotp/main.go | 6 ++++++ gotp.go | 4 ++++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 3fca313..23f5027 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ // SPDX-FileCopyrightText: 2021 M. Shulhan // SPDX-License-Identifier: GPL-3.0-or-later README.html +_bin/ cover.html cover.out testdata/add.conf diff --git a/Makefile b/Makefile index 4b4f88f..a17d4e4 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,20 @@ ## SPDX-FileCopyrightText: 2021 M. Shulhan ## SPDX-License-Identifier: GPL-3.0-or-later -.PHONY: all install -all: +.PHONY: all test build install + +VERSION:=$(shell git describe --tags) +LDFLAGS:=-ldflags "-s -w -X 'git.sr.ht/~shulhan/gotp.Version=$(VERSION)'" + +all: test build + +test: CGO_ENABLED=1 go test -race -failfast -coverprofile=cover.out ./... go tool cover -html=cover.out -o cover.out -install: - go install ./cmd/gotp +build: + mkdir -p _bin/ + go build $(LDFLAGS) -o _bin/ ./cmd/... + +install: build + install -m755 _bin/gotp $(GOBIN)/ diff --git a/cmd/gotp/main.go b/cmd/gotp/main.go index f031e8b..f159234 100644 --- a/cmd/gotp/main.go +++ b/cmd/gotp/main.go @@ -22,6 +22,7 @@ const ( cmdList = `list` cmdRemove = `remove` cmdRename = `rename` + cmdVersion = `version` ) func main() { @@ -76,6 +77,11 @@ func main() { log.Printf(`%s %s: missing parameters`, cmdName, cmd) os.Exit(1) } + + case cmdVersion: + fmt.Println(`gotp v`, gotp.Version) + return + default: log.Printf(`%s: unknown command %q`, cmdName, cmd) flag.Usage() diff --git a/gotp.go b/gotp.go index 3b9625a..4e88a4d 100644 --- a/gotp.go +++ b/gotp.go @@ -24,6 +24,10 @@ const ( providerNameAegis = `aegis` ) +var ( + Version = `0.2.0` +) + // normalizeLabel convert non alpha number, hyphen, underscore, or period // characters into `-`. func normalizeLabel(in string) (out string) { -- cgit v1.3