diff --git a/pkg/kubectl/resource/builder.go b/pkg/kubectl/resource/builder.go index 9c32fc6a97a..f7d4d6cf844 100644 --- a/pkg/kubectl/resource/builder.go +++ b/pkg/kubectl/resource/builder.go @@ -333,7 +333,7 @@ func (b *Builder) ResourceTypeOrNameArgs(allowEmptySelector bool, args ...string } case len(args) == 0: default: - b.errs = append(b.errs, fmt.Errorf("when passing arguments, must be resource or resource and name")) + b.errs = append(b.errs, fmt.Errorf("arguments must consist of a resource or a resource and name")) } return b } @@ -362,7 +362,12 @@ func hasCombinedTypeArgs(args []string) (bool, error) { case hasSlash > 0 && hasSlash == len(args): return true, nil case hasSlash > 0 && hasSlash != len(args): - return true, fmt.Errorf("when passing arguments in resource/name form, all arguments must include the resource") + baseCmd := "cmd" + if len(os.Args) > 0 { + baseCmdSlice := strings.Split(os.Args[0], "/") + baseCmd = baseCmdSlice[len(baseCmdSlice)-1] + } + return true, fmt.Errorf("there is no need to specify a resource type as a separate argument when passing arguments in resource/name form (e.g. '%s get resource/' instead of '%s get resource resource/'", baseCmd, baseCmd) default: return false, nil } diff --git a/pkg/kubectl/resource/builder_test.go b/pkg/kubectl/resource/builder_test.go index 71e33b1d835..edd233e7797 100644 --- a/pkg/kubectl/resource/builder_test.go +++ b/pkg/kubectl/resource/builder_test.go @@ -1231,7 +1231,7 @@ func TestHasNames(t *testing.T) { { args: []string{"rc/foo", "bar"}, expectedHasName: false, - expectedError: fmt.Errorf("when passing arguments in resource/name form, all arguments must include the resource"), + expectedError: fmt.Errorf("there is no need to specify a resource type as a separate argument when passing arguments in resource/name form (e.g. 'resource.test get resource/' instead of 'resource.test get resource resource/'"), }, } for _, test := range tests {