Skip to content

Commit 879ab0b

Browse files
committed
runner/v3: add version flag
1 parent 373f35f commit 879ab0b

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

main.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ import (
7070
"os"
7171
"os/signal"
7272
"path/filepath"
73+
"runtime/debug"
7374
"strings"
7475
"sync"
7576
"syscall"
@@ -82,11 +83,21 @@ import (
8283
const defaultProcfile = "Procfile"
8384

8485
func main() {
86+
version := "v3"
87+
if info, ok := debug.ReadBuildInfo(); ok {
88+
subversion := info.Main.Version
89+
for _, setting := range info.Settings {
90+
if setting.Key == "vcs.revision" {
91+
subversion += "-" + setting.Value
92+
}
93+
}
94+
version += " (" + subversion + ")"
95+
}
8596
log.SetFlags(0)
8697
log.SetPrefix("runner: ")
8798
flagset := flag.NewFlagSet("runner", flag.ContinueOnError)
8899
flagset.Usage = func() {
89-
fmt.Fprintln(flagset.Output(), "runner - a simple Procfile runner (v3)")
100+
fmt.Fprintln(flagset.Output(), "runner - a simple Procfile runner "+version)
90101
fmt.Fprintln(flagset.Output(), "")
91102
fmt.Fprintln(flagset.Output(), "Usage:")
92103
fmt.Fprintln(flagset.Output(), " ", os.Args[0], "[options] [Procfile]")
@@ -101,11 +112,16 @@ func main() {
101112
flagset.String("only", "", "only runs some of the process types, format: `procTypeA procTypeB procTypeN`")
102113
flagset.String("optional", "", "forcefully runs some of the process types, format: `procTypeA procTypeB procTypeN`")
103114
flagset.String("filter", "", "service name to filter message")
115+
flagset.Bool("version", false, "prints version and exit")
104116
if err := flagset.Parse(os.Args[1:]); err == flag.ErrHelp {
105117
return
106118
} else if err != nil {
107119
log.Fatal(err)
108120
}
121+
if flagset.Lookup("version").Value.String() == "true" {
122+
log.Println(version)
123+
return
124+
}
109125
if flagset.Arg(0) == "logs" {
110126
err := logs(flagset)
111127
if err != nil {

0 commit comments

Comments
 (0)