diff --git a/Makefile b/Makefile index 5a4e8f3..e9c5070 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,18 @@ +VERSION := $(shell git rev-parse --short HEAD 2>/dev/null || echo unknown) +BUILDTIME := $(shell date -u +%Y-%m-%dT%H:%M:%SZ) +LDFLAGS := -X github.com/hculpan/areweplaying/pkg/version.Version=$(VERSION) -X github.com/hculpan/areweplaying/pkg/version.BuildTime=$(BUILDTIME) + all: build build: templ generate - go build -o areweplaying cmd/web/*.go - go build -o awp-cli cmd/cli/*.go + go build -ldflags "$(LDFLAGS)" -o areweplaying cmd/web/*.go + go build -ldflags "$(LDFLAGS)" -o awp-cli cmd/cli/*.go linuxbuild: templ generate - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o areweplaying.linux cmd/web/*.go - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o awp-cli.linux cmd/cli/*.go + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o areweplaying.linux cmd/web/*.go + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o awp-cli.linux cmd/cli/*.go clean: rm -rf areweplaying diff --git a/cmd/cli/cmd/version.go b/cmd/cli/cmd/version.go new file mode 100644 index 0000000..fcae41b --- /dev/null +++ b/cmd/cli/cmd/version.go @@ -0,0 +1,25 @@ +/* +Copyright © 2024 NAME HERE +*/ +package cmd + +import ( + "fmt" + + "github.com/hculpan/areweplaying/pkg/version" + "github.com/spf13/cobra" +) + +// versionCmd represents the version command +var versionCmd = &cobra.Command{ + Use: "version", + Short: "Print the build version and time", + RunE: func(cmd *cobra.Command, args []string) error { + fmt.Printf("awp-cli %s (built %s)\n", version.Version, version.BuildTime) + return nil + }, +} + +func init() { + rootCmd.AddCommand(versionCmd) +} diff --git a/cmd/web/templates/setup.templ b/cmd/web/templates/setup.templ index 322bf15..d438d9d 100644 --- a/cmd/web/templates/setup.templ +++ b/cmd/web/templates/setup.templ @@ -3,6 +3,7 @@ package templates import ( "strconv" "github.com/hculpan/areweplaying/pkg/data" +"github.com/hculpan/areweplaying/pkg/version" ) templ Setup(session data.Session) { @@ -197,7 +198,8 @@ templ Setup(session data.Session) { } -