From fc62c50431495a20709791fed3e95eb0cf144a89 Mon Sep 17 00:00:00 2001 From: Miladev95 Date: Wed, 10 Dec 2025 12:04:44 +0330 Subject: [PATCH 1/4] feat: add version command to CLI --- main.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/main.go b/main.go index c0eef0a..e6eca46 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,9 @@ import ( "gorm.io/cli/gorm/internal/gen" ) +// Version can be set at build time via -ldflags "-X main.Version=x.y.z" +var Version = "v0.2.4" + func main() { rootCmd := &cobra.Command{ Use: "gorm", @@ -15,9 +18,20 @@ func main() { } rootCmd.AddCommand(gen.New()) + rootCmd.AddCommand(versionCmd()) if err := rootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(1) } } + +func versionCmd() *cobra.Command { + return &cobra.Command{ + Use: "version", + Short: "Print the version of gorm-cli", + Run: func(cmd *cobra.Command, args []string) { + fmt.Printf("gorm-cli version %s\n", Version) + }, + } +} From bc0c9331dd6757380e735847fbfa6ff7f0847bed Mon Sep 17 00:00:00 2001 From: Miladev95 Date: Mon, 22 Dec 2025 12:03:23 +0330 Subject: [PATCH 2/4] use runtime/debug build info for version --- main.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index e6eca46..901dbf5 100644 --- a/main.go +++ b/main.go @@ -3,14 +3,12 @@ package main import ( "fmt" "os" + "runtime/debug" "github.com/spf13/cobra" "gorm.io/cli/gorm/internal/gen" ) -// Version can be set at build time via -ldflags "-X main.Version=x.y.z" -var Version = "v0.2.4" - func main() { rootCmd := &cobra.Command{ Use: "gorm", @@ -26,12 +24,21 @@ func main() { } } +func getVersion() string { + if info, ok := debug.ReadBuildInfo(); ok { + if info.Main.Version != "" { + return info.Main.Version + } + } + return "dev" +} + func versionCmd() *cobra.Command { return &cobra.Command{ Use: "version", Short: "Print the version of gorm-cli", Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("gorm-cli version %s\n", Version) + fmt.Printf("gorm-cli version %s\n", getVersion()) }, } } From 1dacc6c9569f9b911be6e5f7c3df9de98d9124a5 Mon Sep 17 00:00:00 2001 From: Miladev95 Date: Mon, 22 Dec 2025 12:04:36 +0330 Subject: [PATCH 3/4] level added --- main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 901dbf5..fedb309 100644 --- a/main.go +++ b/main.go @@ -26,10 +26,11 @@ func main() { func getVersion() string { if info, ok := debug.ReadBuildInfo(); ok { - if info.Main.Version != "" { + if info.Main.Version != "" && info.Main.Version != "(devel)" { return info.Main.Version } } + return "dev" } From 60beec6e0975db58e2a00ee01f9573aeffafc61c Mon Sep 17 00:00:00 2001 From: Miladev95 Date: Mon, 22 Dec 2025 12:22:24 +0330 Subject: [PATCH 4/4] Inline version resolution into `versionCmd`; remove top-level `getVersion` --- main.go | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index fedb309..5e09b72 100644 --- a/main.go +++ b/main.go @@ -24,22 +24,19 @@ func main() { } } -func getVersion() string { - if info, ok := debug.ReadBuildInfo(); ok { - if info.Main.Version != "" && info.Main.Version != "(devel)" { - return info.Main.Version - } - } - - return "dev" -} - func versionCmd() *cobra.Command { return &cobra.Command{ Use: "version", Short: "Print the version of gorm-cli", Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("gorm-cli version %s\n", getVersion()) + if info, ok := debug.ReadBuildInfo(); ok { + if info.Main.Version != "" && info.Main.Version != "(devel)" { + fmt.Printf("gorm-cli version %s\n", info.Main.Version) + return + } + } + + fmt.Printf("gorm-cli version %s\n", "dev") }, } }