Skip to content

Commit d243bde

Browse files
committed
feat(grum): add version cmd
1 parent 7542e35 commit d243bde

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

cmd/version.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
Copyright © 2024 jaronnie <jaron@jaronnie.com>
3+
4+
*/
5+
6+
package cmd
7+
8+
import (
9+
"bytes"
10+
"fmt"
11+
"runtime"
12+
"time"
13+
14+
"github.com/spf13/cast"
15+
"github.com/spf13/cobra"
16+
)
17+
18+
var (
19+
Version string
20+
Commit string
21+
Date string
22+
)
23+
24+
// versionCmd represents the version command
25+
var versionCmd = &cobra.Command{
26+
Use: "version",
27+
Short: `Print grum version`,
28+
Run: func(cmd *cobra.Command, args []string) {
29+
getVersion()
30+
},
31+
}
32+
33+
func getVersion() {
34+
var versionBuffer bytes.Buffer
35+
36+
if Version != "" {
37+
versionBuffer.WriteString(fmt.Sprintf("grum version %s %s/%s\n", Version, runtime.GOOS, runtime.GOARCH))
38+
} else {
39+
versionBuffer.WriteString(fmt.Sprintf("grum version %s %s/%s\n", "unknown", runtime.GOOS, runtime.GOARCH))
40+
}
41+
42+
versionBuffer.WriteString(fmt.Sprintf("Go version %s\n", runtime.Version()))
43+
if Commit != "" {
44+
versionBuffer.WriteString(fmt.Sprintf("Git commit %s\n", Commit))
45+
} else {
46+
versionBuffer.WriteString(fmt.Sprintf("Git commit %s\n", "unknown"))
47+
}
48+
49+
if Date != "" {
50+
versionBuffer.WriteString(fmt.Sprintf("Build date %s\n", cast.ToTimeInDefaultLocation(Date, time.Local)))
51+
} else {
52+
versionBuffer.WriteString(fmt.Sprintf("Build date %s\n", "unknown"))
53+
}
54+
55+
fmt.Print(versionBuffer.String())
56+
}
57+
58+
func init() {
59+
rootCmd.AddCommand(versionCmd)
60+
}

main.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@ package main
77

88
import "github.com/jaronnie/grum/cmd"
99

10+
// ldflags
11+
var (
12+
version = "1.3.0"
13+
commit string
14+
date string
15+
)
16+
1017
func main() {
18+
cmd.Version = version
19+
cmd.Date = date
20+
cmd.Commit = commit
21+
1122
cmd.Execute()
1223
}

0 commit comments

Comments
 (0)