mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-15 02:01:43 +03:00
72 lines
1.4 KiB
Go
72 lines
1.4 KiB
Go
|
package commands
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"runtime"
|
||
|
|
||
|
"github.com/spf13/cobra"
|
||
|
)
|
||
|
|
||
|
// These variables are initialized externally during the build. See the Makefile.
|
||
|
var GitCommit string
|
||
|
var GitLastTag string
|
||
|
var GitExactTag string
|
||
|
|
||
|
var (
|
||
|
versionNumber bool
|
||
|
versionCommit bool
|
||
|
versionAll bool
|
||
|
)
|
||
|
|
||
|
func runVersionCmd(cmd *cobra.Command, args []string) {
|
||
|
if versionAll {
|
||
|
fmt.Printf("%s version: %s\n", rootCommandName, RootCmd.Version)
|
||
|
fmt.Printf("System version: %s/%s\n", runtime.GOARCH, runtime.GOOS)
|
||
|
fmt.Printf("Golang version: %s\n", runtime.Version())
|
||
|
return
|
||
|
}
|
||
|
|
||
|
if versionNumber {
|
||
|
fmt.Println(RootCmd.Version)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
if versionCommit {
|
||
|
fmt.Println(GitCommit)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
fmt.Printf("%s version: %s\n", rootCommandName, RootCmd.Version)
|
||
|
}
|
||
|
|
||
|
var versionCmd = &cobra.Command{
|
||
|
Use: "version",
|
||
|
Short: "Show git-bug version information",
|
||
|
Run: runVersionCmd,
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
if GitExactTag == "undefined" {
|
||
|
GitExactTag = ""
|
||
|
}
|
||
|
|
||
|
RootCmd.Version = GitLastTag
|
||
|
|
||
|
if GitExactTag == "" {
|
||
|
RootCmd.Version = fmt.Sprintf("%s-dev-%.10s", RootCmd.Version, GitCommit)
|
||
|
}
|
||
|
|
||
|
RootCmd.AddCommand(versionCmd)
|
||
|
versionCmd.Flags().SortFlags = false
|
||
|
|
||
|
versionCmd.Flags().BoolVarP(&versionNumber, "number", "n", false,
|
||
|
"Only show the version number",
|
||
|
)
|
||
|
versionCmd.Flags().BoolVarP(&versionCommit, "commit", "c", false,
|
||
|
"Only show the commit hash",
|
||
|
)
|
||
|
versionCmd.Flags().BoolVarP(&versionAll, "all", "a", false,
|
||
|
"Show all version informations",
|
||
|
)
|
||
|
}
|