From 0bf3e7500cab474364798b50f0496c27e0eab371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Thu, 31 Oct 2019 11:44:45 +0100 Subject: [PATCH 1/2] Add `--version` flag support --- Makefile | 6 ++++-- command/root.go | 14 ++++++++------ version/version.go | 11 ----------- 3 files changed, 12 insertions(+), 19 deletions(-) delete mode 100644 version/version.go diff --git a/Makefile b/Makefile index 988c9cad5..63e424b84 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,12 @@ BUILD_FILES = $(shell go list -f '{{range .GoFiles}}{{$$.Dir}}/{{.}}\ {{end}}' ./...) -# export GOFLAGS := -mod=vendor $GOFLAGS +GH_VERSION = $(shell go describe --tags 2>/dev/null || git rev-parse --short HEAD) +LDFLAGS := -X github.com/github/gh-cli/command.Version=$(GH_VERSION) $(LDFLAGS) +LDFLAGS := -X github.com/github/gh-cli/command.BuildDate=$(shell date +%Y-%m-%d) $(LDFLAGS) bin/gh: $(BUILD_FILES) - go build -o "$@" + @go build -ldflags "$(LDFLAGS)" -o "$@" test: go test ./... diff --git a/command/root.go b/command/root.go index c0b676c86..ed120b56b 100644 --- a/command/root.go +++ b/command/root.go @@ -6,12 +6,18 @@ import ( "github.com/github/gh-cli/api" "github.com/github/gh-cli/context" - "github.com/github/gh-cli/version" "github.com/spf13/cobra" ) +// Version is dynamically set at build time +var Version = "DEV" + +// BuildDate is dynamically set at build time +var BuildDate = "YYYY-MM-DD" + func init() { + RootCmd.Version = fmt.Sprintf("%s (%s)", Version, BuildDate) RootCmd.PersistentFlags().StringP("repo", "R", "", "current GitHub repository") RootCmd.PersistentFlags().StringP("current-branch", "B", "", "current git branch") // TODO: @@ -23,10 +29,6 @@ var RootCmd = &cobra.Command{ Use: "gh", Short: "GitHub CLI", Long: `Do things with GitHub from your terminal`, - Args: cobra.MinimumNArgs(1), - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("root") - }, } // overriden in tests @@ -57,7 +59,7 @@ var apiClientForContext = func(ctx context.Context) (*api.Client, error) { } opts := []api.ClientOption{ api.AddHeader("Authorization", fmt.Sprintf("token %s", token)), - api.AddHeader("User-Agent", fmt.Sprintf("GitHub CLI %s", version.Version)), + api.AddHeader("User-Agent", fmt.Sprintf("GitHub CLI %s", Version)), } if verbose := os.Getenv("DEBUG"); verbose != "" { opts = append(opts, api.VerboseLog(os.Stderr)) diff --git a/version/version.go b/version/version.go deleted file mode 100644 index 7314c51e6..000000000 --- a/version/version.go +++ /dev/null @@ -1,11 +0,0 @@ -package version - -import ( - "fmt" -) - -var Version = "0.0.0" - -func FullVersion() (string, error) { - return fmt.Sprintf("gh version %s", Version), nil -} From c3d70bd8cd49eff2cd8e2dcfd276048d4a8fb3fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Thu, 31 Oct 2019 23:10:42 +0100 Subject: [PATCH 2/2] Clarify where Version and BuildDate are set --- command/root.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/command/root.go b/command/root.go index ed120b56b..3dff3bce6 100644 --- a/command/root.go +++ b/command/root.go @@ -10,10 +10,10 @@ import ( "github.com/spf13/cobra" ) -// Version is dynamically set at build time +// Version is dynamically set at build time in the Makefile var Version = "DEV" -// BuildDate is dynamically set at build time +// BuildDate is dynamically set at build time in the Makefile var BuildDate = "YYYY-MM-DD" func init() {