diff --git a/cmd/reviewdog/main.go b/cmd/reviewdog/main.go index e615473ca0..f6c58ebbf2 100644 --- a/cmd/reviewdog/main.go +++ b/cmd/reviewdog/main.go @@ -28,6 +28,8 @@ import ( "github.com/mattn/go-shellwords" ) +const version = "0.9.4" + const usageMessage = "" + `Usage: reviewdog [flags] reviewdog accepts any compiler or linter results from stdin and filters @@ -36,6 +38,7 @@ const usageMessage = "" + ` type option struct { + version bool diffCmd string diffStrip int efms strslice @@ -78,6 +81,7 @@ const ( var opt = &option{} func init() { + flag.BoolVar(&opt.version, "version", false, "print version") flag.StringVar(&opt.diffCmd, "diff", "", diffCmdDoc) flag.IntVar(&opt.diffStrip, "strip", 1, diffStripDoc) flag.Var(&opt.efms, "efm", efmsDoc) @@ -107,6 +111,11 @@ func main() { func run(r io.Reader, w io.Writer, opt *option) error { ctx := context.Background() + if opt.version { + fmt.Fprintln(w, version) + return nil + } + if opt.list { return runList(w) } diff --git a/cmd/reviewdog/main_test.go b/cmd/reviewdog/main_test.go index 71bd9bac29..edd20b45ba 100644 --- a/cmd/reviewdog/main_test.go +++ b/cmd/reviewdog/main_test.go @@ -461,3 +461,13 @@ func TestCommonci(t *testing.T) { } } + +func TestRun_version(t *testing.T) { + stdout := new(bytes.Buffer) + if err := run(nil, stdout, &option{version: true}); err != nil { + t.Error(err) + } + if got := strings.TrimRight(stdout.String(), "\n"); got != version { + t.Errorf("version = %v, want %v", got, version) + } +}