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:
3
Makefile
3
Makefile
@@ -8,9 +8,10 @@ MAIN_GO=$(CMD_DIR)/main.go
|
||||
|
||||
# Version
|
||||
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)
|
||||
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?=go
|
||||
|
||||
@@ -36,6 +36,7 @@ import (
|
||||
|
||||
var (
|
||||
version = "dev"
|
||||
gitCommit string
|
||||
buildTime string
|
||||
goVersion string
|
||||
)
|
||||
@@ -43,7 +44,11 @@ var (
|
||||
const logo = "🦞"
|
||||
|
||||
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 != "" {
|
||||
fmt.Printf(" Build: %s\n", buildTime)
|
||||
}
|
||||
@@ -760,7 +765,16 @@ func statusCmd() {
|
||||
|
||||
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 {
|
||||
fmt.Println("Config:", configPath, "✓")
|
||||
|
||||
Reference in New Issue
Block a user