From 8307ca4a3c70eabdf791d4769704e8f55f300513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arda=20G=C3=BC=C3=A7l=C3=BC?= Date: Mon, 4 Oct 2021 13:02:34 +0300 Subject: [PATCH] Add diff command return status code greater than 1 when flags invalid This PR adds flagerror handler function to detect when flags are invalid. Default flag handler returns status code 1. However, diff command embraces this status code as changes are found. By overriding flag errors, this PR shows same message with default case and returns status code 2. Kubernetes-commit: 4f0848520d4cdd679c76479949546002c5935e3c --- pkg/cmd/diff/diff.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/cmd/diff/diff.go b/pkg/cmd/diff/diff.go index 7b810ec93..5c4774438 100644 --- a/pkg/cmd/diff/diff.go +++ b/pkg/cmd/diff/diff.go @@ -160,6 +160,14 @@ func NewCmdDiff(f cmdutil.Factory, streams genericclioptions.IOStreams) *cobra.C }, } + // Flag errors exit with code 1, however according to the diff + // command it means changes were found. + // Thus, it should return status code greater than 1. + cmd.SetFlagErrorFunc(func(command *cobra.Command, err error) error { + cmdutil.CheckDiffErr(cmdutil.UsageErrorf(cmd, err.Error())) + return nil + }) + usage := "contains the configuration to diff" cmd.Flags().StringVarP(&options.Selector, "selector", "l", options.Selector, "Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2)") cmdutil.AddFilenameOptionFlags(cmd, &options.FilenameOptions, usage)