diff --git a/cmd/fluxctl/main.go b/cmd/fluxctl/main.go index 144da86ed..20e8195cf 100644 --- a/cmd/fluxctl/main.go +++ b/cmd/fluxctl/main.go @@ -12,11 +12,11 @@ func run(args []string) int { rootCmd := newRoot().Command() rootCmd.SetArgs(args) if cmd, err := rootCmd.ExecuteC(); err != nil { - err = errors.Cause(err) - switch err := err.(type) { - case *fluxerr.Error: - cmd.Println("== Error ==\n\n" + err.Help) - default: + // Format flux-specific errors. They can come wrapped, + // so we use the cause instead. + if cause, ok := errors.Cause(err).(*fluxerr.Error); ok { + cmd.Println("== Error ==\n\n" + cause.Help) + } else { cmd.Println("Error: " + err.Error()) cmd.Printf("Run '%v --help' for usage.\n", cmd.CommandPath()) }