diff --git a/internal/cli/entry_test.go b/internal/cli/entry_test.go index 98d19df..7e59022 100644 --- a/internal/cli/entry_test.go +++ b/internal/cli/entry_test.go @@ -42,7 +42,7 @@ func TestVersionCommand(t *testing.T) { assert.Equal(t, 0, exitCode) stdout := opts.Stdout.(*bytes.Buffer).String() - assert.Contains(t, stdout, "1.0.0") + assert.Contains(t, stdout, mfer.Version) assert.Contains(t, stdout, "abc123") } diff --git a/internal/cli/mfer.go b/internal/cli/mfer.go index 2645b64..b3ac33d 100644 --- a/internal/cli/mfer.go +++ b/internal/cli/mfer.go @@ -50,7 +50,10 @@ func (mfa *CLIApp) printBanner() { // VersionString returns the version and git revision formatted for display. func (mfa *CLIApp) VersionString() string { - return fmt.Sprintf("%s (%s)", mfa.version, mfa.gitrev) + if mfa.gitrev != "" { + return fmt.Sprintf("%s (%s)", mfer.Version, mfa.gitrev) + } + return mfer.Version } func (mfa *CLIApp) setVerbosity(quiet bool, v int) { @@ -85,6 +88,13 @@ func (mfa *CLIApp) run(args []string) { EnableBashCompletion: true, Writer: mfa.Stdout, ErrWriter: mfa.Stderr, + Action: func(c *cli.Context) error { + if c.Args().Len() > 0 { + return fmt.Errorf("unknown command %q", c.Args().First()) + } + mfa.printBanner() + return cli.ShowAppHelp(c) + }, Flags: []cli.Flag{ &cli.BoolFlag{ Name: "verbose",