Skip to content

Commit bee8488

Browse files
committed
Add a --version flag for the root command
1 parent f98735e commit bee8488

3 files changed

Lines changed: 15 additions & 5 deletions

File tree

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
BIN := vct
2+
VERSION := $(shell git describe --tags --always --dirty)
23

34
.PHONY: all $(BIN) clean
45

56
all: $(BIN)
67

78
$(BIN):
8-
go build -ldflags='-s -w'
9+
go build -ldflags='-s -w -X main.version=$(VERSION)'
910

1011
clean:
1112
rm -f $(BIN)

cmd/root.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,28 @@ import (
88
"github.com/spf13/cobra"
99
)
1010

11-
func showHelp(cmd *cobra.Command, args []string) {
12-
cmd.Help()
13-
}
11+
var Version string
1412

1513
func MakeCmd() *cobra.Command {
1614
cmd := &cobra.Command{
1715
Use: "vct",
1816
Short: "Vlab's Container Tool",
1917
Long: "Vlab's Container Tool, a versatile tool for managing containers on Proxmox VE",
2018
Args: cobra.NoArgs,
21-
Run: showHelp,
2219
}
2320
cmd.CompletionOptions.HiddenDefaultCmd = true
2421
cmd.AddCommand(df.MakeCmd())
2522
cmd.AddCommand(findpid.MakeCmd())
2623
cmd.AddCommand(iostat.MakeCmd())
2724
cmd.AddCommand(pressure.MakeCmd())
25+
pVersion := cmd.Flags().BoolP("version", "v", false, "show version")
26+
27+
cmd.Run = func(cmd *cobra.Command, args []string) {
28+
if *pVersion {
29+
cmd.Println(cmd.Name(), Version)
30+
} else {
31+
cmd.Help()
32+
}
33+
}
2834
return cmd
2935
}

main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ import (
66
"github.com/USTC-vlab/vct/cmd"
77
)
88

9+
var version string = "<unknown>"
10+
911
func main() {
12+
cmd.Version = version
1013
if err := cmd.MakeCmd().Execute(); err != nil {
1114
os.Exit(1)
1215
}

0 commit comments

Comments
 (0)