Merge pull request #56 from OpenCHAMI/version

Add `version` command to show `magellan`'s current version
This commit is contained in:
Alex Lovell-Troy 2024-08-29 18:14:43 +03:00 committed by GitHub
commit 0539745021
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 56 additions and 3 deletions

View file

@ -12,6 +12,12 @@ ifndef VERSION
$(error VERSION is not set. Please review and copy config.env.default to config.env and try again) $(error VERSION is not set. Please review and copy config.env.default to config.env and try again)
endif endif
ifndef BUILD
$(error BUILD is not set. Please review and copy config.env.default to config.env and try again)
endif
LDFLAGS="-s -X=$(GIT)main.commit=$(BUILD) -X=$(GIT)main.version=$(VERSION) -X=$(GIT)main.date=$(shell date +%Y-%m-%d:%H:%M:%S)"
SHELL := /bin/bash SHELL := /bin/bash
GOPATH ?= $(shell echo $${GOPATH:-~/go}) GOPATH ?= $(shell echo $${GOPATH:-~/go})
@ -54,8 +60,8 @@ release: ## goreleaser build
$(GOPATH)/bin/goreleaser build --clean --single-target --snapshot $(GOPATH)/bin/goreleaser build --clean --single-target --snapshot
.PHONY: build .PHONY: build
build: ## goreleaser build build: ## go build
go build --tags=all go build -v --tags=all -ldflags=$(LDFLAGS) -o $(NAME) main.go
.PHONY: docker .PHONY: docker
container: ## docker build container: ## docker build

40
cmd/version.go Normal file
View file

@ -0,0 +1,40 @@
package cmd
import (
"fmt"
"github.com/spf13/cobra"
)
var (
version string
commit string
date string
output string
)
var versionCmd = &cobra.Command{
Use: "version",
Run: func(cmd *cobra.Command, args []string) {
if cmd.Flag("commit").Value.String() == "true" {
output = commit
if date != "" {
output += " built @ " + date
}
fmt.Println(output)
} else {
fmt.Println(version)
}
},
}
func init() {
versionCmd.Flags().Bool("commit", false, "show the version commit")
rootCmd.AddCommand(versionCmd)
}
func SetVersionInfo(buildVersion string, buildCommit string, buildDate string) {
version = buildVersion
commit = buildCommit
date = buildDate
}

View file

@ -2,4 +2,4 @@
NAME=magellan NAME=magellan
VERSION=$(shell git describe --tags --abbrev=0) VERSION=$(shell git describe --tags --abbrev=0)
BUILD=$(shell git rev-parse --short HEAD)

View file

@ -4,6 +4,13 @@ import (
"github.com/OpenCHAMI/magellan/cmd" "github.com/OpenCHAMI/magellan/cmd"
) )
var (
version string
commit string
date string
)
func main() { func main() {
cmd.SetVersionInfo(version, commit, date)
cmd.Execute() cmd.Execute()
} }