From 89f1e067da19d5da6aef5a5b23e1fd60827cd445 Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Sat, 18 Feb 2023 16:47:09 -0800 Subject: [PATCH] cmd/mkinitfs: add --version option --- Makefile | 3 ++- cmd/mkinitfs/main.go | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 16adbc3..bfbd961 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ .POSIX: .SUFFIXES: .1 .1.scd +VERSION?=`git describe --tags --dirty 2>/dev/null || echo 0.0.0` VPATH=doc PREFIX?=/usr/local BINDIR?=$(PREFIX)/sbin @@ -8,7 +9,7 @@ MANDIR?=$(PREFIX)/share/man SHAREDIR?=$(PREFIX)/share GO?=go GOFLAGS?= -LDFLAGS+=-s -w +LDFLAGS+=-s -w -X main.Version=$(VERSION) RM?=rm -f GOTEST=go test -count=1 -race diff --git a/cmd/mkinitfs/main.go b/cmd/mkinitfs/main.go index ec882e0..5371783 100644 --- a/cmd/mkinitfs/main.go +++ b/cmd/mkinitfs/main.go @@ -6,6 +6,7 @@ package main import ( "errors" "flag" + "fmt" "io" "log" "os" @@ -26,7 +27,21 @@ import ( "gitlab.com/postmarketOS/postmarketos-mkinitfs/pkgs/deviceinfo" ) +// set at build time +var Version string + func main() { + + outDir := flag.String("d", "/boot", "Directory to output initfs(-extra) and other boot files") + var showVersion bool + flag.BoolVar(&showVersion, "version", false, "Print version and quit.") + flag.Parse() + + if showVersion { + fmt.Printf("%s - %s\n", filepath.Base(os.Args[0]), Version) + os.Exit(0) + } + deviceinfoFile := "/etc/deviceinfo" if !misc.Exists(deviceinfoFile) { log.Print("NOTE: deviceinfo (from device package) not installed yet, " + @@ -40,9 +55,6 @@ func main() { log.Fatal(err) } - outDir := flag.String("d", "/boot", "Directory to output initfs(-extra) and other boot files") - flag.Parse() - defer misc.TimeFunc(time.Now(), "mkinitfs") kernVer, err := misc.GetKernelVersion()