From cc8dd8ea7fca32237652370882ce38d57348ad89 Mon Sep 17 00:00:00 2001 From: N3N Date: Tue, 19 May 2026 21:54:09 -0700 Subject: [PATCH 1/2] fix: remove rootCmd.SetVersionTemplate(...) to reduce binary size --- main.go | 15 +++++++++++++-- main_test.go | 11 +++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index edea357..a227511 100644 --- a/main.go +++ b/main.go @@ -394,8 +394,19 @@ func newRootCmd() *cobra.Command { }, } - var rootCmd = &cobra.Command{Use: "scharf", Long: asciiLogo, Version: cliVersion()} - rootCmd.SetVersionTemplate("{{.Version}}\n") + var rootCmd = &cobra.Command{ + Use: "scharf", + Long: asciiLogo, + Run: func(cmd *cobra.Command, args []string) { + showVersion, _ := cmd.Flags().GetBool("version") + if showVersion { + fmt.Fprintln(cmd.OutOrStdout(), cliVersion()) + return + } + _ = cmd.Help() + }, + } + rootCmd.Flags().BoolP("version", "v", false, "Print Scharf version information") rootCmd.AddCommand(cmdLookup, cmdFind, cmdList, cmdAudit, cmdAutoFix, cmdUpgrade, cmdUpgradeAllSHA, cmdVersion) return rootCmd diff --git a/main_test.go b/main_test.go index 3895d26..3b113c2 100644 --- a/main_test.go +++ b/main_test.go @@ -40,6 +40,7 @@ func TestUpgradeSHAWithoutFromVersionShowsUsage(t *testing.T) { } func TestVersionInfoExposedOnCLI(t *testing.T) { + var expected string for _, args := range [][]string{{"--version"}, {"version"}} { stdout, stderr, err := executeRoot(args...) if err != nil { @@ -49,5 +50,15 @@ func TestVersionInfoExposedOnCLI(t *testing.T) { if !strings.Contains(stdout, "commit") || !strings.Contains(stdout, "built") { t.Fatalf("stdout = %q; want version details including commit and build metadata", stdout) } + if !strings.HasPrefix(stdout, "version: ") { + t.Fatalf("stdout = %q; want direct version output without Cobra prefix", stdout) + } + if expected == "" { + expected = stdout + continue + } + if stdout != expected { + t.Fatalf("stdout for %v = %q; want %q", args, stdout, expected) + } } } From 3cb7ba7a2762904df9c8afbea20a4741ba92ad24 Mon Sep 17 00:00:00 2001 From: N3N Date: Tue, 19 May 2026 22:01:52 -0700 Subject: [PATCH 2/2] feat: add -V option --- main.go | 2 +- main_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index a227511..a5043d0 100644 --- a/main.go +++ b/main.go @@ -406,7 +406,7 @@ func newRootCmd() *cobra.Command { _ = cmd.Help() }, } - rootCmd.Flags().BoolP("version", "v", false, "Print Scharf version information") + rootCmd.Flags().BoolP("version", "V", false, "Print Scharf version information") rootCmd.AddCommand(cmdLookup, cmdFind, cmdList, cmdAudit, cmdAutoFix, cmdUpgrade, cmdUpgradeAllSHA, cmdVersion) return rootCmd diff --git a/main_test.go b/main_test.go index 3b113c2..b07f1f9 100644 --- a/main_test.go +++ b/main_test.go @@ -41,7 +41,7 @@ func TestUpgradeSHAWithoutFromVersionShowsUsage(t *testing.T) { func TestVersionInfoExposedOnCLI(t *testing.T) { var expected string - for _, args := range [][]string{{"--version"}, {"version"}} { + for _, args := range [][]string{{"--version"}, {"version"}, {"-V"}} { stdout, stderr, err := executeRoot(args...) if err != nil { t.Fatalf("unexpected error for %v: %v (stderr: %s)", args, err, stderr)