cmk: add git sha and build timestamp from makefile

With this change `cmk -v` will output git sha and build timestamp.

Signed-off-by: Rohit Yadav <rohit@apache.org>
diff --git a/Makefile b/Makefile
index 7bb027e..174c58a 100644
--- a/Makefile
+++ b/Makefile
@@ -24,6 +24,7 @@
 BASE     = $(CURDIR)
 PKGS     = $(or $(PKG),$(shell $(GO) list ./... | grep -v "^$(PACKAGE)/vendor/"))
 TESTPKGS = $(shell $(GO) list -f '{{ if or .TestGoFiles .XTestGoFiles }}{{ .ImportPath }}{{ end }}' $(PKGS))
+GIT_SHA  = $(shell git rev-parse --short HEAD)
 
 GO      = go
 GODOC   = godoc
@@ -34,10 +35,10 @@
 M = $(shell printf "\033[34;1m▶\033[0m ")
 
 .PHONY: all
-all: fmt ; $(info $(M) Building executable…) @ ## Build program binary
+all: fmt ; $(info $(M) Building executable… $(GIT_SHA)) @ ## Build program binary
 	$Q $(GO) build -mod=vendor \
 		-tags release \
-		-ldflags '-s -w -X $(PACKAGE)/cmd.Version=$(VERSION) -X $(PACKAGE)/cmd.BuildDate=$(DATE)' \
+		-ldflags '-s -w -X main.GitSHA=$(GIT_SHA) -X main.BuildDate=$(DATE)' \
 		-o bin/$(PACKAGE) cmk.go
 	$(info $(M) Done!) @
 
@@ -50,10 +51,10 @@
 dist: all
 	rm -fr dist
 	mkdir -p dist
-	GOOS=linux   GOARCH=amd64 $(GO) build -mod=vendor -ldflags='-s -w' -o dist/cmk.linux.amd64 cmk.go
-	GOOS=linux   GOARCH=arm64 $(GO) build -mod=vendor -ldflags='-s -w' -o dist/cmk.linux.arm64 cmk.go
-	GOOS=windows GOARCH=amd64 $(GO) build -mod=vendor -ldflags='-s -w' -o dist/cmk.exe cmk.go
-	GOOS=darwin  GOARCH=amd64 $(GO) build -mod=vendor -ldflags='-s -w' -o dist/cmk.darwin.amd64 cmk.go
+	GOOS=linux   GOARCH=amd64 $(GO) build -mod=vendor -ldflags='-s -w -X main.GitSHA=$(GIT_SHA) -X main.BuildDate=$(DATE)' -o dist/cmk.linux.amd64 cmk.go
+	GOOS=linux   GOARCH=arm64 $(GO) build -mod=vendor -ldflags='-s -w -X main.GitSHA=$(GIT_SHA) -X main.BuildDate=$(DATE)' -o dist/cmk.linux.arm64 cmk.go
+	GOOS=windows GOARCH=amd64 $(GO) build -mod=vendor -ldflags='-s -w -X main.GitSHA=$(GIT_SHA) -X main.BuildDate=$(DATE)' -o dist/cmk.exe cmk.go
+	GOOS=darwin  GOARCH=amd64 $(GO) build -mod=vendor -ldflags='-s -w -X main.GitSHA=$(GIT_SHA) -X main.BuildDate=$(DATE)' -o dist/cmk.darwin.amd64 cmk.go
 
 # Tools
 
diff --git a/cmk.go b/cmk.go
index 1afc26e..fad4f49 100644
--- a/cmk.go
+++ b/cmk.go
@@ -27,6 +27,12 @@
 	"github.com/apache/cloudstack-cloudmonkey/config"
 )
 
+// GitSHA holds the git SHA
+var GitSHA string
+
+// BuildDate holds the build datetime
+var BuildDate string
+
 func init() {
 	flag.Usage = func() {
 		cmd.PrintUsage()
@@ -38,12 +44,13 @@
 	showVersion := flag.Bool("v", false, "show version")
 	debug := flag.Bool("d", false, "enable debug mode")
 	profile := flag.String("p", "", "server profile")
+
 	flag.Parse()
 
 	cfg := config.NewConfig()
 
 	if *showVersion {
-		fmt.Println(cfg.Name(), cfg.Version())
+		fmt.Printf("%s %s (build: %s, %s)\n", cfg.Name(), cfg.Version(), GitSHA, BuildDate)
 		os.Exit(0)
 	}