From b845aa9805418df2d626534d8f619dca17f25b29 Mon Sep 17 00:00:00 2001 From: Alan Zhu Date: Tue, 12 May 2020 10:09:35 +0800 Subject: [PATCH] add options command for show global flag Signed-off-by: Alan Zhu --- cmd/helm/options.go | 47 +++++++++++++++++++++++++++++++++++++++++++++ cmd/helm/root.go | 10 +++++++--- 2 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 cmd/helm/options.go diff --git a/cmd/helm/options.go b/cmd/helm/options.go new file mode 100644 index 000000000..b6bbb6dff --- /dev/null +++ b/cmd/helm/options.go @@ -0,0 +1,47 @@ +/* +Copyright The Helm Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package main + +import ( + "github.com/spf13/cobra" + "helm.sh/helm/v3/cmd/helm/require" + "io" + "k8s.io/kubectl/pkg/util/templates" +) + +// NewCmdOptions implements the options command +func newCmdOptions(out io.Writer) *cobra.Command { + cmd := &cobra.Command{ + Use: "options", + Short: "print the list of flags inherited by all commands", + Long: "print the list of flags inherited by all commands", + Args: require.NoArgs, + Run: func(cmd *cobra.Command, args []string) { + cmd.Usage() + }, + } + + // The `options` command needs to write its output to the `out` stream + // (typically stdout). Without calling SetOutput here, the Usage() + // function call will fall back to stderr. + // + // See https://github.com/kubernetes/kubernetes/pull/46394 for details. + cmd.SetOutput(out) + + templates.UseOptionsTemplates(cmd) + return cmd +} diff --git a/cmd/helm/root.go b/cmd/helm/root.go index ff4a01ad7..ac52c1e12 100644 --- a/cmd/helm/root.go +++ b/cmd/helm/root.go @@ -71,9 +71,12 @@ By default, the default directories depend on the Operating System. The defaults func newRootCmd(actionConfig *action.Configuration, out io.Writer, args []string) *cobra.Command { cmd := &cobra.Command{ - Use: "helm", - Short: "The Helm package manager for Kubernetes.", - Long: globalUsage, + Use: "helm", + Short: "The Helm package manager for Kubernetes.", + Long: globalUsage, + Run: func(cmd *cobra.Command, args []string) { + cmd.Help() + }, SilenceUsage: true, BashCompletionFunction: completion.GetBashCustomFunction(), } @@ -178,6 +181,7 @@ func newRootCmd(actionConfig *action.Configuration, out io.Writer, args []string newEnvCmd(out), newPluginCmd(out), newVersionCmd(out), + newCmdOptions(out), // Hidden documentation generator command: 'helm docs' newDocsCmd(out),