From ec83e66691bd9db315e68892fce370b60127afda Mon Sep 17 00:00:00 2001 From: maimaiti Date: Tue, 22 Nov 2022 11:43:38 +0800 Subject: [PATCH] [change] optimized version printing --- cmd/root.go | 1 + cmd/version.go | 31 ++++++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index b2000571..a0d24838 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -59,6 +59,7 @@ var langs = map[string]string{ "Canceled upgrade": "已取消更新", "Error occurred while updating binary: %s": "更新二进制文件时出错: %s", "🎉Successfully updated to version: %s🎉": "🎉成功更新到版本: %s🎉", + "Print all version information": "显示详细版本信息", } // L 多语言切换 diff --git a/cmd/version.go b/cmd/version.go index 5c7b4b26..9b37f145 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -2,23 +2,40 @@ package cmd import ( "fmt" - "github.com/spf13/cobra" "github.com/yaoapp/yao/share" + "runtime" + "strings" ) +var printAllVersion bool +var versionTemplate = `Version: %s +Go version: %s +Git commit: %s +Built: %s +OS/Arch: %s/%s +` var versionCmd = &cobra.Command{ Use: "version", Short: L("Show version"), Long: L("Show version"), Run: func(cmd *cobra.Command, args []string) { - - version := share.VERSION - if share.PRVERSION != "" { - version = fmt.Sprintf("%s-%s", share.VERSION, share.PRVERSION) + if printAllVersion { + commit := strings.Split(share.PRVERSION, "-")[0] + buildTime := strings.TrimPrefix(share.PRVERSION, commit+"-") + fmt.Printf(versionTemplate, + share.VERSION, + runtime.Version(), + commit, buildTime, + runtime.GOOS, + runtime.GOARCH) + return } - // Do Stuff Here - fmt.Println(version) + fmt.Println(share.VERSION) }, } + +func init() { + versionCmd.PersistentFlags().BoolVarP(&printAllVersion, "all", "", false, L("Print all version information")) +}