From 4c81b59d21812a0c9045c13241b5b743e0141f06 Mon Sep 17 00:00:00 2001 From: Daichi Hirata Date: Fri, 30 Sep 2022 03:28:17 +0900 Subject: [PATCH] Add version command --- cmd/version.go | 32 ++++++++++++++++++++++++++++++++ main.go | 4 ++++ 2 files changed, 36 insertions(+) create mode 100644 cmd/version.go diff --git a/cmd/version.go b/cmd/version.go new file mode 100644 index 0000000..151ac2c --- /dev/null +++ b/cmd/version.go @@ -0,0 +1,32 @@ +package cmd + +import ( + "fmt" + "runtime/debug" + + "github.com/spf13/cobra" +) + +var Version string + +var ( + versionCmd = &cobra.Command{ + Use: "version", + Short: "Display version", + Run: func(cmd *cobra.Command, args []string) { + if Version != "" { + fmt.Println(Version) + return + } + if buildInfo, ok := debug.ReadBuildInfo(); ok { + fmt.Println(buildInfo.Main.Version) + return + } + fmt.Println("(unknown)") + }, + } +) + +func init() { + rootCmd.AddCommand(versionCmd) +} diff --git a/main.go b/main.go index 28fd1b5..273aa2f 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,11 @@ import ( "github.com/daichirata/hammer/cmd" ) +var version string + func main() { + cmd.Version = version + if err := cmd.Execute(); err != nil { os.Exit(1) }