feat(cli): add git commit hash to version output
Users can now see the exact git commit used to build the binary, which helps with debugging and deployment tracking.
This commit is contained in:
parent
7fa70b8cdf
commit
5aa4dd2975
2 changed files with 21 additions and 6 deletions
3
Makefile
3
Makefile
|
|
@ -8,9 +8,10 @@ MAIN_GO=$(CMD_DIR)/main.go
|
||||||
|
|
||||||
# Version
|
# Version
|
||||||
VERSION?=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
VERSION?=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
||||||
|
GIT_COMMIT=$(shell git rev-parse --short=8 HEAD 2>/dev/null || echo "unknown")
|
||||||
BUILD_TIME=$(shell date +%FT%T%z)
|
BUILD_TIME=$(shell date +%FT%T%z)
|
||||||
GO_VERSION=$(shell $(GO) version | awk '{print $$3}')
|
GO_VERSION=$(shell $(GO) version | awk '{print $$3}')
|
||||||
LDFLAGS=-ldflags "-X main.version=$(VERSION) -X main.buildTime=$(BUILD_TIME) -X main.goVersion=$(GO_VERSION)"
|
LDFLAGS=-ldflags "-X main.version=$(VERSION) -X main.gitCommit=$(GIT_COMMIT) -X main.buildTime=$(BUILD_TIME) -X main.goVersion=$(GO_VERSION)"
|
||||||
|
|
||||||
# Go variables
|
# Go variables
|
||||||
GO?=go
|
GO?=go
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ import (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
version = "dev"
|
version = "dev"
|
||||||
|
gitCommit string
|
||||||
buildTime string
|
buildTime string
|
||||||
goVersion string
|
goVersion string
|
||||||
)
|
)
|
||||||
|
|
@ -43,7 +44,11 @@ var (
|
||||||
const logo = "🦞"
|
const logo = "🦞"
|
||||||
|
|
||||||
func printVersion() {
|
func printVersion() {
|
||||||
fmt.Printf("%s picoclaw %s\n", logo, version)
|
fmt.Printf("%s picoclaw %s", logo, version)
|
||||||
|
if gitCommit != "" {
|
||||||
|
fmt.Printf(" (git: %s)", gitCommit)
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
if buildTime != "" {
|
if buildTime != "" {
|
||||||
fmt.Printf(" Build: %s\n", buildTime)
|
fmt.Printf(" Build: %s\n", buildTime)
|
||||||
}
|
}
|
||||||
|
|
@ -760,7 +765,16 @@ func statusCmd() {
|
||||||
|
|
||||||
configPath := getConfigPath()
|
configPath := getConfigPath()
|
||||||
|
|
||||||
fmt.Printf("%s picoclaw Status\n\n", logo)
|
fmt.Printf("%s picoclaw Status\n", logo)
|
||||||
|
fmt.Printf("Version: %s", version)
|
||||||
|
if gitCommit != "" {
|
||||||
|
fmt.Printf(" (git: %s)", gitCommit)
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
if buildTime != "" {
|
||||||
|
fmt.Printf("Build: %s\n", buildTime)
|
||||||
|
}
|
||||||
|
fmt.Println()
|
||||||
|
|
||||||
if _, err := os.Stat(configPath); err == nil {
|
if _, err := os.Stat(configPath); err == nil {
|
||||||
fmt.Println("Config:", configPath, "✓")
|
fmt.Println("Config:", configPath, "✓")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue