add cmd argument to print version

This commit is contained in:
Lawrence, Rendall
2024-09-01 16:20:05 +03:00
parent c76870b2ab
commit 61760722a6
2 changed files with 26 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ package main
import (
"flag"
"fmt"
"log"
"os"
"os/signal"
@@ -19,20 +20,33 @@ const (
logColorsArg = "logColored"
configArg = "config"
quickArg = "quick"
versionArg = "version"
)
// Version is variable to set version number in build time
var Version = "dev"
func main() {
var err error
logOut := flag.String(logOutArg, "stderr", "output for logging, might be 'stderr', 'stdout' or file path")
logLevel := flag.String(logLevelArg, "warn", "logging level: trace, debug, info, warn, error, fatal, panic")
logPretty := flag.Bool(logPrettyArg, false, "enable log pretty print. used only if 'logOut' set to 'stdout' or 'stderr'. if not set, log outputs json")
logPretty := flag.Bool(logPrettyArg, false,
"enable log pretty print. used only if 'logOut' set to 'stdout' or 'stderr'. if not set, log outputs json")
//goland:noinspection GoBoolExpressions
logColored := flag.Bool(logColorsArg, runtime.GOOS == "windows", "enable log coloring. used only if set 'logPretty'")
logColored := flag.Bool(logColorsArg, runtime.GOOS == "windows",
"enable log coloring. used only if set 'logPretty'")
configPath := flag.String(configArg, "/etc/mochi.yaml", "location of configuration file")
quickStart := flag.Bool(quickArg, false, "start tracker with default configuration (all frontends, in-memory store, no hooks)")
quickStart := flag.Bool(quickArg, false,
"start tracker with default configuration (all frontends, in-memory store, no hooks)")
version := flag.Bool(versionArg, false, "print version and exit")
flag.Parse()
if *version {
fmt.Println("mochi:", Version)
return
}
if err = l.ConfigureLogger(*logOut, *logLevel, *logPretty, *logColored); err != nil {
log.Fatal("unable to configure logger: ", err)
}

10
rel.sh
View File

@@ -5,13 +5,21 @@ out=$1
src="$PWD"
vv="`git describe --tags --abbrev=0`"
if [ -z "$vv" ]; then
vv=`git rev-parse --short HEAD`
fi
if [ -z "$vv" ]; then
vv=snapshot
fi
tt="`TZ=UTC date +'%Z %F'`"
for arch in amd64 arm64; do
arch_out="mochi-${vv}-linux-${arch}"
mkdir -p "$out/$arch_out"
cp dist/example_config*.yaml "$out/$arch_out/"
CGO_ENABLED=0 GOARCH=${arch} go build -trimpath -o "$out/$arch_out/mochi" ./cmd/mochi
CGO_ENABLED=0 GOARCH=${arch} go build -trimpath -ldflags "-X 'main.Version=${vv}'" -o "$out/$arch_out/mochi" ./cmd/mochi
strip "$out/$arch_out/mochi"
cd "$out"
tar -czf "${arch_out}".tar.gz --owner=root --group=root --numeric-owner --mtime="${tt}" "$arch_out"