From aa582dad217fcb2e93cba22327ea3d5b5972f04e Mon Sep 17 00:00:00 2001 From: Luke Kingland <58986931+lkingland@users.noreply.github.com> Date: Wed, 1 Mar 2023 18:35:54 +0900 Subject: [PATCH] cli help text updates and flags cleanup (#1564) * cli help text and flags cleanup - verbose flag uses global setting throughout - confirm flag added using shared visitor throughout - path flag added using shared visitor throughout - removes --version flag on root as redundant with subcommand - splits main help's 'Main Commands' into 'Primary Commands' and 'Development Commands' groups - Moves RunE definition into flag struct literals * remove commented code --- cmd/build.go | 14 +-- cmd/completion.go | 2 +- cmd/config.go | 10 ++- cmd/config_envs.go | 21 +++-- cmd/config_labels.go | 22 +++-- cmd/config_volumes.go | 21 +++-- cmd/create.go | 19 ++-- cmd/delete.go | 14 +-- cmd/deploy.go | 14 +-- cmd/describe.go | 16 ++-- cmd/invoke.go | 16 ++-- cmd/languages.go | 17 ++-- cmd/list.go | 19 ++-- cmd/repository.go | 65 +++++++------- cmd/root.go | 92 +++++++++----------- cmd/root_test.go | 64 +------------- cmd/run.go | 18 ++-- cmd/templates.go | 20 +++-- cmd/templates/template_engine_test.go | 2 +- cmd/templates/templates.go | 4 +- cmd/version.go | 14 +-- docs/reference/func.md | 49 ++++------- docs/reference/func_build.md | 17 ++-- docs/reference/func_completion.md | 10 +-- docs/reference/func_config.md | 11 +-- docs/reference/func_config_envs.md | 9 +- docs/reference/func_config_envs_add.md | 9 +- docs/reference/func_config_envs_remove.md | 9 +- docs/reference/func_config_labels.md | 9 +- docs/reference/func_config_labels_add.md | 9 +- docs/reference/func_config_labels_remove.md | 9 +- docs/reference/func_config_volumes.md | 9 +- docs/reference/func_config_volumes_add.md | 9 +- docs/reference/func_config_volumes_remove.md | 9 +- docs/reference/func_create.md | 15 ++-- docs/reference/func_delete.md | 13 +-- docs/reference/func_deploy.md | 17 ++-- docs/reference/func_describe.md | 15 ++-- docs/reference/func_invoke.md | 15 ++-- docs/reference/func_languages.md | 9 +- docs/reference/func_list.md | 13 +-- docs/reference/func_repository.md | 9 +- docs/reference/func_repository_add.md | 7 +- docs/reference/func_repository_list.md | 8 +- docs/reference/func_repository_remove.md | 7 +- docs/reference/func_repository_rename.md | 7 +- docs/reference/func_run.md | 11 +-- docs/reference/func_templates.md | 13 +-- docs/reference/func_version.md | 11 +-- 49 files changed, 338 insertions(+), 484 deletions(-) diff --git a/cmd/build.go b/cmd/build.go index b457d7a9..9bfbec68 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -19,10 +19,10 @@ import ( func NewBuildCmd(newClient ClientFactory) *cobra.Command { cmd := &cobra.Command{ Use: "build", - Short: "Build a Function", + Short: "Build a function container", Long: ` NAME - {{rootCmdUse}} build - Build a Function + {{rootCmdUse}} build - Build a function container locally withoud deploying SYNOPSIS {{rootCmdUse}} build [-r|--registry] [--builder] [--builder-image] [--push] @@ -64,7 +64,7 @@ EXAMPLES `, SuggestFor: []string{"biuld", "buidl", "built"}, - PreRunE: bindEnv("image", "path", "builder", "registry", "confirm", "push", "builder-image", "platform"), + PreRunE: bindEnv("image", "path", "builder", "registry", "confirm", "push", "builder-image", "platform", "verbose"), RunE: func(cmd *cobra.Command, args []string) error { return runBuild(cmd, args, newClient) }, @@ -94,8 +94,6 @@ EXAMPLES // contextually relevant function; sets are flattened above via cfg.Apply(f) cmd.Flags().StringP("builder", "b", cfg.Builder, fmt.Sprintf("Builder to use when creating the function's container. Currently supported builders are %s. (Env: $FUNC_BUILDER)", KnownBuilders())) - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, - "Prompt to confirm all configuration options (Env: $FUNC_CONFIRM)") cmd.Flags().StringP("registry", "r", cfg.Registry, "Container registry + registry namespace. (ex 'ghcr.io/myuser'). The full image name is automatically determined using this along with function name. (Env: $FUNC_REGISTRY)") @@ -115,7 +113,11 @@ EXAMPLES "Attempt to push the function image to the configured registry after being successfully built") cmd.Flags().StringP("platform", "", "", "Optionally specify a target platform, for example \"linux/amd64\" when using the s2i build strategy") - setPathFlag(cmd) + + // Oft-shared flags: + addConfirmFlag(cmd, cfg.Confirm) + addPathFlag(cmd) + addVerboseFlag(cmd, cfg.Verbose) // Tab Completion if err := cmd.RegisterFlagCompletionFunc("builder", CompleteBuilderList); err != nil { diff --git a/cmd/completion.go b/cmd/completion.go index aedd7d60..34311c3c 100644 --- a/cmd/completion.go +++ b/cmd/completion.go @@ -10,7 +10,7 @@ import ( func NewCompletionCmd() *cobra.Command { return &cobra.Command{ Use: "completion ", - Short: "Generate completion scripts for bash, fish and zsh", + Short: "Output functions shell completion code", Long: `To load completion run For zsh: diff --git a/cmd/config.go b/cmd/config.go index 22e17ae0..fcaaf976 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -7,6 +7,7 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" + "knative.dev/func/pkg/config" fn "knative.dev/func/pkg/functions" ) @@ -53,11 +54,16 @@ variables, and Labels for a function project present in the current directory or from the directory specified with --path. `, SuggestFor: []string{"cfg", "cofnig"}, - PreRunE: bindEnv("path"), + PreRunE: bindEnv("path", "verbose"), RunE: runConfigCmd, } + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) + } - setPathFlag(cmd) + addPathFlag(cmd) + addVerboseFlag(cmd, cfg.Verbose) cmd.AddCommand(NewConfigLabelsCmd(loadSaver)) cmd.AddCommand(NewConfigEnvsCmd(loadSaver)) diff --git a/cmd/config_envs.go b/cmd/config_envs.go index 3ab24273..6f4e7690 100644 --- a/cmd/config_envs.go +++ b/cmd/config_envs.go @@ -13,6 +13,7 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" + "knative.dev/func/pkg/config" fn "knative.dev/func/pkg/functions" "knative.dev/func/pkg/k8s" "knative.dev/func/pkg/utils" @@ -29,7 +30,7 @@ the current directory or from the directory specified with --path. `, Aliases: []string{"env"}, SuggestFor: []string{"ensv"}, - PreRunE: bindEnv("path", "output"), + PreRunE: bindEnv("path", "output", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(loadSaver) if err != nil { @@ -39,15 +40,23 @@ the current directory or from the directory specified with --path. return listEnvs(function, cmd.OutOrStdout(), Format(viper.GetString("output"))) }, } + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) + } cmd.Flags().StringP("output", "o", "human", "Output format (human|json) (Env: $FUNC_OUTPUT)") configEnvsAddCmd := NewConfigEnvsAddCmd(loadSaver) configEnvsRemoveCmd := NewConfigEnvsRemoveCmd() - setPathFlag(cmd) - setPathFlag(configEnvsAddCmd) - setPathFlag(configEnvsRemoveCmd) + addPathFlag(cmd) + addPathFlag(configEnvsAddCmd) + addPathFlag(configEnvsRemoveCmd) + + addVerboseFlag(cmd, cfg.Verbose) + addVerboseFlag(configEnvsAddCmd, cfg.Verbose) + addVerboseFlag(configEnvsRemoveCmd, cfg.Verbose) cmd.AddCommand(configEnvsAddCmd) cmd.AddCommand(configEnvsRemoveCmd) @@ -84,7 +93,7 @@ set environment variable from a secret # set all key as environment variables from a configMap {{rootCmdUse}} config envs add --value='{{"{{"}} configMap:confMapName {{"}}"}}'`, SuggestFor: []string{"ad", "create", "insert", "append"}, - PreRunE: bindEnv("path", "name", "value"), + PreRunE: bindEnv("path", "name", "value", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(loadSaver) if err != nil { @@ -141,7 +150,7 @@ in the current directory or from the directory specified with --path. `, Aliases: []string{"rm"}, SuggestFor: []string{"del", "delete", "rmeove"}, - PreRunE: bindEnv("path"), + PreRunE: bindEnv("path", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(defaultLoaderSaver) if err != nil { diff --git a/cmd/config_labels.go b/cmd/config_labels.go index 0d86efd6..e2474ffb 100644 --- a/cmd/config_labels.go +++ b/cmd/config_labels.go @@ -8,6 +8,7 @@ import ( "github.com/AlecAivazis/survey/v2" "github.com/spf13/cobra" + "knative.dev/func/pkg/config" fn "knative.dev/func/pkg/functions" "knative.dev/func/pkg/utils" ) @@ -23,7 +24,7 @@ the current directory or from the directory specified with --path. `, Aliases: []string{"label"}, SuggestFor: []string{"albels", "abels"}, - PreRunE: bindEnv("path"), + PreRunE: bindEnv("path", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(loaderSaver) if err != nil { @@ -48,7 +49,7 @@ The label can be set directly from a value or from an environment variable on the local machine. `, SuggestFor: []string{"ad", "create", "insert", "append"}, - PreRunE: bindEnv("path"), + PreRunE: bindEnv("path", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(loaderSaver) if err != nil { @@ -69,7 +70,7 @@ directory or from the directory specified with --path. `, Aliases: []string{"rm"}, SuggestFor: []string{"del", "delete", "rmeove"}, - PreRunE: bindEnv("path"), + PreRunE: bindEnv("path", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(loaderSaver) if err != nil { @@ -80,9 +81,18 @@ directory or from the directory specified with --path. }, } - setPathFlag(configLabelsCmd) - setPathFlag(configLabelsAddCmd) - setPathFlag(configLabelsRemoveCmd) + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(configLabelsCmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) + } + + addPathFlag(configLabelsCmd) + addPathFlag(configLabelsAddCmd) + addPathFlag(configLabelsRemoveCmd) + addVerboseFlag(configLabelsCmd, cfg.Verbose) + addVerboseFlag(configLabelsAddCmd, cfg.Verbose) + addVerboseFlag(configLabelsRemoveCmd, cfg.Verbose) + configLabelsCmd.AddCommand(configLabelsAddCmd) configLabelsCmd.AddCommand(configLabelsRemoveCmd) diff --git a/cmd/config_volumes.go b/cmd/config_volumes.go index aaa3168b..7cb18748 100644 --- a/cmd/config_volumes.go +++ b/cmd/config_volumes.go @@ -8,6 +8,7 @@ import ( "github.com/AlecAivazis/survey/v2" "github.com/spf13/cobra" + "knative.dev/func/pkg/config" fn "knative.dev/func/pkg/functions" "knative.dev/func/pkg/k8s" ) @@ -23,7 +24,7 @@ the current directory or from the directory specified with --path. `, Aliases: []string{"volume"}, SuggestFor: []string{"vol", "volums", "vols"}, - PreRunE: bindEnv("path"), + PreRunE: bindEnv("path", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(defaultLoaderSaver) if err != nil { @@ -35,13 +36,21 @@ the current directory or from the directory specified with --path. return }, } + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) + } configVolumesAddCmd := NewConfigVolumesAddCmd() configVolumesRemoveCmd := NewConfigVolumesRemoveCmd() - setPathFlag(cmd) - setPathFlag(configVolumesAddCmd) - setPathFlag(configVolumesRemoveCmd) + addPathFlag(cmd) + addPathFlag(configVolumesAddCmd) + addPathFlag(configVolumesRemoveCmd) + + addVerboseFlag(cmd, cfg.Verbose) + addVerboseFlag(configVolumesAddCmd, cfg.Verbose) + addVerboseFlag(configVolumesRemoveCmd, cfg.Verbose) cmd.AddCommand(configVolumesAddCmd) cmd.AddCommand(configVolumesRemoveCmd) @@ -59,7 +68,7 @@ Interactive prompt to add Secrets and ConfigMaps as Volume mounts to the functio in the current directory or from the directory specified with --path. `, SuggestFor: []string{"ad", "create", "insert", "append"}, - PreRunE: bindEnv("path"), + PreRunE: bindEnv("path", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(defaultLoaderSaver) if err != nil { @@ -84,7 +93,7 @@ in the current directory or from the directory specified with --path. `, Aliases: []string{"rm"}, SuggestFor: []string{"del", "delete", "rmeove"}, - PreRunE: bindEnv("path"), + PreRunE: bindEnv("path", "verbose"), RunE: func(cmd *cobra.Command, args []string) (err error) { function, err := initConfigCommand(defaultLoaderSaver) if err != nil { diff --git a/cmd/create.go b/cmd/create.go index 1cd7ab03..fa1645be 100644 --- a/cmd/create.go +++ b/cmd/create.go @@ -30,10 +30,10 @@ type ErrInvalidTemplate error func NewCreateCmd(newClient ClientFactory) *cobra.Command { cmd := &cobra.Command{ Use: "create", - Short: "Create a function project", + Short: "Create a function", Long: ` NAME - {{.Name}} create - Create a function project. + {{.Name}} create - Create a function SYNOPSIS {{.Name}} create [-l|--language] [-t|--template] [-r|--repository] @@ -72,8 +72,11 @@ EXAMPLES $ {{.Name}} create -l go -t cloudevents myfunc `, SuggestFor: []string{"vreate", "creaet", "craete", "new"}, - PreRunE: bindEnv("language", "template", "repository", "confirm"), + PreRunE: bindEnv("language", "template", "repository", "confirm", "verbose"), Aliases: []string{"init"}, + RunE: func(cmd *cobra.Command, args []string) error { + return runCreate(cmd, args, newClient) + }, } // Config @@ -86,16 +89,14 @@ EXAMPLES cmd.Flags().StringP("language", "l", cfg.Language, "Language Runtime (see help text for list) (Env: $FUNC_LANGUAGE)") cmd.Flags().StringP("template", "t", fn.DefaultTemplate, "Function template. (see help text for list) (Env: $FUNC_TEMPLATE)") cmd.Flags().StringP("repository", "r", "", "URI to a Git repository containing the specified template (Env: $FUNC_REPOSITORY)") - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, "Prompt to confirm all options interactively (Env: $FUNC_CONFIRM)") + + addConfirmFlag(cmd, cfg.Confirm) + // TODO: refactor to use --path like all the other commands + addVerboseFlag(cmd, cfg.Verbose) // Help Action cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) { runCreateHelp(cmd, args, newClient) }) - // Run Action - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runCreate(cmd, args, newClient) - } - // Tab completion if err := cmd.RegisterFlagCompletionFunc("language", newRuntimeCompletionFunc(newClient)); err != nil { fmt.Fprintf(os.Stderr, "unable to provide language runtime suggestions: %v", err) diff --git a/cmd/delete.go b/cmd/delete.go index f40c8819..873b9cce 100644 --- a/cmd/delete.go +++ b/cmd/delete.go @@ -32,8 +32,11 @@ No local files are deleted. `, SuggestFor: []string{"remove", "rm", "del"}, ValidArgsFunction: CompleteFunctionList, - PreRunE: bindEnv("path", "confirm", "all", "namespace"), + PreRunE: bindEnv("path", "confirm", "all", "namespace", "verbose"), SilenceUsage: true, // no usage dump on error + RunE: func(cmd *cobra.Command, args []string) error { + return runDelete(cmd, args, newClient) + }, } // Config @@ -43,14 +46,11 @@ No local files are deleted. } // Flags - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, "Prompt to confirm all configuration options (Env: $FUNC_CONFIRM)") cmd.Flags().StringP("namespace", "n", cfg.Namespace, "The namespace in which to delete. (Env: $FUNC_NAMESPACE)") cmd.Flags().StringP("all", "a", "true", "Delete all resources created for a function, eg. Pipelines, Secrets, etc. (Env: $FUNC_ALL) (allowed values: \"true\", \"false\")") - setPathFlag(cmd) - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runDelete(cmd, args, newClient) - } + addConfirmFlag(cmd, cfg.Confirm) + addPathFlag(cmd) + addVerboseFlag(cmd, cfg.Verbose) return cmd } diff --git a/cmd/deploy.go b/cmd/deploy.go index 129e3354..101983de 100644 --- a/cmd/deploy.go +++ b/cmd/deploy.go @@ -30,10 +30,10 @@ import ( func NewDeployCmd(newClient ClientFactory) *cobra.Command { cmd := &cobra.Command{ Use: "deploy", - Short: "Deploy a Function", + Short: "Deploy a function", Long: ` NAME - {{rootCmdUse}} deploy - Deploy a Function + {{rootCmdUse}} deploy - Deploy a function SYNOPSIS {{rootCmdUse}} deploy [-R|--remote] [-r|--registry] [-i|--image] [-n|--namespace] @@ -123,7 +123,7 @@ EXAMPLES `, SuggestFor: []string{"delpoy", "deplyo"}, - PreRunE: bindEnv("confirm", "env", "git-url", "git-branch", "git-dir", "remote", "build", "builder", "builder-image", "image", "registry", "push", "platform", "path", "namespace"), + PreRunE: bindEnv("confirm", "env", "git-url", "git-branch", "git-dir", "remote", "build", "builder", "builder-image", "image", "registry", "push", "platform", "namespace", "path", "verbose"), RunE: func(cmd *cobra.Command, args []string) error { return runDeploy(cmd, newClient) }, @@ -148,8 +148,6 @@ EXAMPLES // contextually relevant function; but sets are flattened via cfg.Apply(f) cmd.Flags().StringP("builder", "b", cfg.Builder, fmt.Sprintf("Builder to use when creating the function's container. Currently supported builders are %s.", KnownBuilders())) - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, - "Prompt to confirm all configuration options (Env: $FUNC_CONFIRM)") cmd.Flags().StringP("registry", "r", cfg.Registry, "Container registry + registry namespace. (ex 'ghcr.io/myuser'). The full image name is automatically determined using this along with function name. (Env: $FUNC_REGISTRY)") cmd.Flags().StringP("namespace", "n", cfg.Namespace, @@ -185,7 +183,11 @@ EXAMPLES "Push the function image to registry before deploying. (Env: $FUNC_PUSH)") cmd.Flags().StringP("platform", "", "", "Optionally specify a specific platform to build for (e.g. linux/amd64). (Env: $FUNC_PLATFORM)") - setPathFlag(cmd) + + // Oft-shared flags: + addConfirmFlag(cmd, cfg.Confirm) + addPathFlag(cmd) + addVerboseFlag(cmd, cfg.Verbose) // Tab Completion if err := cmd.RegisterFlagCompletionFunc("builder", CompleteBuilderList); err != nil { diff --git a/cmd/describe.go b/cmd/describe.go index 2a4c3d2e..39f12145 100644 --- a/cmd/describe.go +++ b/cmd/describe.go @@ -18,8 +18,8 @@ import ( func NewDescribeCmd(newClient ClientFactory) *cobra.Command { cmd := &cobra.Command{ Use: "describe ", - Short: "Describe a Function", - Long: `Describe a Function + Short: "Describe a function", + Long: `Describe a function Prints the name, route and event subscriptions for a deployed function in the current directory or from the directory specified with --path. @@ -35,7 +35,10 @@ the current directory or from the directory specified with --path. ValidArgsFunction: CompleteFunctionList, Aliases: []string{"info", "desc"}, - PreRunE: bindEnv("output", "path", "namespace"), + PreRunE: bindEnv("output", "path", "namespace", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runDescribe(cmd, args, newClient) + }, } // Config @@ -47,16 +50,13 @@ the current directory or from the directory specified with --path. // Flags cmd.Flags().StringP("output", "o", "human", "Output format (human|plain|json|xml|yaml|url) (Env: $FUNC_OUTPUT)") cmd.Flags().StringP("namespace", "n", cfg.Namespace, "The namespace in which to look for the named function. (Env: $FUNC_NAMESPACE)") - setPathFlag(cmd) + addPathFlag(cmd) + addVerboseFlag(cmd, cfg.Verbose) if err := cmd.RegisterFlagCompletionFunc("output", CompleteOutputFormatList); err != nil { fmt.Println("internal: error while calling RegisterFlagCompletionFunc: ", err) } - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runDescribe(cmd, args, newClient) - } - return cmd } diff --git a/cmd/invoke.go b/cmd/invoke.go index ca7bda34..4af95a18 100644 --- a/cmd/invoke.go +++ b/cmd/invoke.go @@ -18,7 +18,7 @@ import ( func NewInvokeCmd(newClient ClientFactory) *cobra.Command { cmd := &cobra.Command{ Use: "invoke", - Short: "Invoke a function", + Short: "Invoke a local or remote function", Long: ` NAME {{rootCmdUse}} invoke - test a function by invoking it with test data @@ -102,7 +102,10 @@ EXAMPLES `, SuggestFor: []string{"emit", "emti", "send", "emit", "exec", "nivoke", "onvoke", "unvoke", "knvoke", "imvoke", "ihvoke", "ibvoke"}, - PreRunE: bindEnv("path", "format", "target", "id", "source", "type", "data", "content-type", "file", "insecure", "confirm"), + PreRunE: bindEnv("path", "format", "target", "id", "source", "type", "data", "content-type", "file", "insecure", "confirm", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runInvoke(cmd, args, newClient) + }, } // Config @@ -112,7 +115,6 @@ EXAMPLES } // Flags - setPathFlag(cmd) cmd.Flags().StringP("format", "f", "", "Format of message to send, 'http' or 'cloudevent'. Default is to choose automatically. (Env: $FUNC_FORMAT)") cmd.Flags().StringP("target", "t", "", "Function instance to invoke. Can be 'local', 'remote' or a URL. Defaults to auto-discovery if not provided. (Env: $FUNC_TARGET)") cmd.Flags().StringP("id", "", "", "ID for the request data. (Env: $FUNC_ID)") @@ -122,11 +124,9 @@ EXAMPLES cmd.Flags().StringP("data", "", fn.DefaultInvokeData, "Data to send in the request. (Env: $FUNC_DATA)") cmd.Flags().StringP("file", "", "", "Path to a file to use as data. Overrides --data flag and should be sent with a correct --content-type. (Env: $FUNC_FILE)") cmd.Flags().BoolP("insecure", "i", false, "Allow insecure server connections when using SSL. (Env: $FUNC_INSECURE)") - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, "Prompt to confirm all options interactively. (Env: $FUNC_CONFIRM)") - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runInvoke(cmd, args, newClient) - } + addConfirmFlag(cmd, cfg.Confirm) + addPathFlag(cmd) + addVerboseFlag(cmd, cfg.Verbose) return cmd } diff --git a/cmd/languages.go b/cmd/languages.go index bb3700c2..ac887558 100644 --- a/cmd/languages.go +++ b/cmd/languages.go @@ -7,6 +7,7 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" + "knative.dev/func/pkg/config" fn "knative.dev/func/pkg/functions" ) @@ -49,15 +50,21 @@ EXAMPLES `, SuggestFor: []string{"language", "runtime", "runtimes", "lnaguages", "languagse", "panguages", "manguages", "kanguages", "lsnguages", "lznguages"}, - PreRunE: bindEnv("json", "repository"), + PreRunE: bindEnv("json", "repository", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runLanguages(cmd, args, newClient) + }, + } + + // Global Config + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } cmd.Flags().BoolP("json", "", false, "Set output to JSON format. (Env: $FUNC_JSON)") cmd.Flags().StringP("repository", "r", "", "URI to a specific repository to consider (Env: $FUNC_REPOSITORY)") - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runLanguages(cmd, args, newClient) - } + addVerboseFlag(cmd, cfg.Verbose) return cmd } diff --git a/cmd/list.go b/cmd/list.go index 2ebdc6bd..87b284d2 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -20,8 +20,8 @@ import ( func NewListCmd(newClient ClientFactory) *cobra.Command { cmd := &cobra.Command{ Use: "list", - Short: "List functions", - Long: `List functions + Short: "List deployed functions", + Long: `List deployed functions Lists all deployed functions in a given namespace. `, @@ -36,7 +36,15 @@ Lists all deployed functions in a given namespace. {{rootCmdUse}} list --all-namespaces --output json `, SuggestFor: []string{"ls", "lsit"}, - PreRunE: bindEnv("all-namespaces", "output", "namespace"), + PreRunE: bindEnv("all-namespaces", "output", "namespace", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runList(cmd, args, newClient) + }, + } + + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } // Namespace Config @@ -53,15 +61,12 @@ Lists all deployed functions in a given namespace. cmd.Flags().BoolP("all-namespaces", "A", false, "List functions in all namespaces. If set, the --namespace flag is ignored.") cmd.Flags().StringP("namespace", "n", config.DefaultNamespace(), "The namespace for which to list functions. (Env: $FUNC_NAMESPACE)") cmd.Flags().StringP("output", "o", "human", "Output format (human|plain|json|xml|yaml) (Env: $FUNC_OUTPUT)") + addVerboseFlag(cmd, cfg.Verbose) if err := cmd.RegisterFlagCompletionFunc("output", CompleteOutputFormatList); err != nil { fmt.Println("internal: error while calling RegisterFlagCompletionFunc: ", err) } - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runList(cmd, args, newClient) - } - return cmd } diff --git a/cmd/repository.go b/cmd/repository.go index f3267212..696eebc4 100644 --- a/cmd/repository.go +++ b/cmd/repository.go @@ -146,21 +146,18 @@ EXAMPLES default `, SuggestFor: []string{"repositories", "repos", "template", "templates", "pack", "packs"}, - PreRunE: bindEnv("confirm"), + PreRunE: bindEnv("confirm", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runRepository(cmd, args, newClient) + }, } - // Config cfg, err := config.NewDefault() if err != nil { fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } - - // Flags - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, "Prompt to confirm all options interactively (Env: $FUNC_CONFIRM)") - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runRepository(cmd, args, newClient) - } + addConfirmFlag(cmd, cfg.Confirm) + addVerboseFlag(cmd, cfg.Verbose) cmd.AddCommand(NewRepositoryListCmd(newClient)) cmd.AddCommand(NewRepositoryAddCmd(newClient)) @@ -175,11 +172,18 @@ func NewRepositoryListCmd(newClient ClientFactory) *cobra.Command { Short: "List repositories", Use: "list", Aliases: []string{"ls"}, + PreRunE: bindEnv("confirm", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runRepositoryList(cmd, args, newClient) + }, } - cmd.RunE = func(_ *cobra.Command, args []string) error { - return runRepositoryList(cmd, args, newClient) + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } + addConfirmFlag(cmd, cfg.Confirm) + addVerboseFlag(cmd, cfg.Verbose) return cmd } @@ -189,19 +193,18 @@ func NewRepositoryAddCmd(newClient ClientFactory) *cobra.Command { Short: "Add a repository", Use: "add ", SuggestFor: []string{"ad", "install"}, - PreRunE: bindEnv("confirm"), + PreRunE: bindEnv("confirm", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runRepositoryAdd(cmd, args, newClient) + }, } cfg, err := config.NewDefault() if err != nil { fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } - - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, "Prompt to confirm all options interactively (Env: $FUNC_CONFIRM)") - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runRepositoryAdd(cmd, args, newClient) - } + addConfirmFlag(cmd, cfg.Confirm) + addVerboseFlag(cmd, cfg.Verbose) return cmd } @@ -211,19 +214,18 @@ func NewRepositoryRenameCmd(newClient ClientFactory) *cobra.Command { Short: "Rename a repository", Use: "rename ", Aliases: []string{"mv"}, - PreRunE: bindEnv("confirm"), + PreRunE: bindEnv("confirm", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runRepositoryRename(cmd, args, newClient) + }, } cfg, err := config.NewDefault() if err != nil { fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } - - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, "Prompt to confirm all options interactively (Env: $FUNC_CONFIRM)") - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runRepositoryRename(cmd, args, newClient) - } + addConfirmFlag(cmd, cfg.Confirm) + addVerboseFlag(cmd, cfg.Verbose) return cmd } @@ -234,19 +236,18 @@ func NewRepositoryRemoveCmd(newClient ClientFactory) *cobra.Command { Use: "remove ", Aliases: []string{"rm"}, SuggestFor: []string{"delete", "del"}, - PreRunE: bindEnv("confirm"), + PreRunE: bindEnv("confirm", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runRepositoryRemove(cmd, args, newClient) + }, } cfg, err := config.NewDefault() if err != nil { fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } - - cmd.Flags().BoolP("confirm", "c", cfg.Confirm, "Prompt to confirm all options interactively (Env: $FUNC_CONFIRM)") - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runRepositoryRemove(cmd, args, newClient) - } + addConfirmFlag(cmd, cfg.Confirm) + addVerboseFlag(cmd, cfg.Verbose) return cmd } diff --git a/cmd/root.go b/cmd/root.go index ded03495..f04db951 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -32,34 +32,22 @@ type RootCommandConfig struct { // resultant binary with no arguments prints the help/usage text. func NewRootCmd(cfg RootCommandConfig) *cobra.Command { cmd := &cobra.Command{ - // Use must be set to exactly config.Name, as this field is overloaded to - // be used in subcommand help text as the command with possible prefix: - Use: cfg.Name, - Short: "Serverless functions", - SilenceErrors: true, // we explicitly handle errors in Execute() - SilenceUsage: true, // no usage dump on error - Long: `Knative serverless functions + Use: cfg.Name, + Short: fmt.Sprintf("%s manages Knative Functions", cfg.Name), + Long: fmt.Sprintf(`%s is the command line interface for managing Knative Function resources - Create, build and deploy Knative functions + Create a new Node.js function in the current directory: + {{.Use}} create --language node myfunction -SYNOPSIS - {{.Use}} [-v|--verbose] [args] + Deploy the function using Docker hub to host the image: + {{.Use}} deploy --registry docker.io/alice -EXAMPLES +Learn more about Functions: https://knative.dev/docs/functions/ +Learn more about Knative at: https://knative.dev`, cfg.Name), - o Create a Node function in the current directory - $ {{.Use}} create --language node . - - o Deploy the function defined in the current working directory to the - currently connected cluster, specifying a container registry in place of - quay.io/user for the function's container. - $ {{.Use}} deploy --registry quay.io.user - - o Invoke the function defined in the current working directory with an example - request. - $ {{.Use}} invoke - - For more examples, see '{{.Use}} [command] --help'.`, + DisableAutoGenTag: true, // no docs header + SilenceUsage: true, // no usage dump on error + SilenceErrors: true, // we explicitly handle errors in Execute() } // Environment Variables @@ -68,20 +56,6 @@ EXAMPLES viper.AutomaticEnv() // read in environment variables for FUNC_ viper.SetEnvPrefix("func") // ensure that all have the prefix - // Flags - // persistent flags are available to all subcommands implicitly - // Note they are bound immediately here as opposed to other subcommands - // because this root command is not actually executed during tests, and - // therefore PreRunE and other event-based listeners are not invoked. - cmd.PersistentFlags().BoolP("verbose", "v", false, "Print verbose logs ($FUNC_VERBOSE)") - if err := viper.BindPFlag("verbose", cmd.PersistentFlags().Lookup("verbose")); err != nil { - fmt.Fprintf(os.Stderr, "error binding flag: %v\n", err) - } - - // Version - cmd.Version = cfg.Version.String() - cmd.SetVersionTemplate(`{{printf "%s\n" .Version}}`) - // Client // Use the provided ClientFactory or default to NewClient newClient := cfg.NewClient @@ -92,20 +66,30 @@ EXAMPLES // Grouped commands groups := templates.CommandGroups{ { - Header: "Main Commands:", + Header: "Primary Commands:", Commands: []*cobra.Command{ - NewBuildCmd(newClient), - NewConfigCmd(defaultLoaderSaver), NewCreateCmd(newClient), - NewDeleteCmd(newClient), - NewDeployCmd(newClient), NewDescribeCmd(newClient), - NewInvokeCmd(newClient), - NewLanguagesCmd(newClient), + NewDeployCmd(newClient), + NewDeleteCmd(newClient), NewListCmd(newClient), - NewRepositoryCmd(newClient), + }, + }, + { + Header: "Development Commands:", + Commands: []*cobra.Command{ NewRunCmd(newClient), + NewInvokeCmd(newClient), + NewBuildCmd(newClient), + }, + }, + { + Header: "System Commands:", + Commands: []*cobra.Command{ + NewConfigCmd(defaultLoaderSaver), + NewLanguagesCmd(newClient), NewTemplatesCmd(newClient), + NewRepositoryCmd(newClient), }, }, { @@ -320,9 +304,19 @@ func mergeEnvs(envs []fn.Env, envToUpdate *util.OrderedMap, envToRemove []string return envs, counter, nil } -// setPathFlag ensures common text/wording when the --path flag is used -func setPathFlag(cmd *cobra.Command) { - cmd.Flags().StringP("path", "p", "", "Path to the project directory. Default is current working directory (Env: $FUNC_PATH)") +// addConfirmFlag ensures common text/wording when the --path flag is used +func addConfirmFlag(cmd *cobra.Command, dflt bool) { + cmd.Flags().BoolP("confirm", "c", dflt, "Prompt to confirm options interactively (Env: $FUNC_CONFIRM)") +} + +// addPathFlag ensures common text/wording when the --path flag is used +func addPathFlag(cmd *cobra.Command) { + cmd.Flags().StringP("path", "p", "", "Path to the function. Default is current directory (Env: $FUNC_PATH)") +} + +// addVerboseFlag ensures common text/wording when the --path flag is used +func addVerboseFlag(cmd *cobra.Command, dflt bool) { + cmd.Flags().BoolP("verbose", "v", false, "Print verbose logs ($FUNC_VERBOSE)") } // cwd returns the current working directory or exits 1 printing the error. diff --git a/cmd/root_test.go b/cmd/root_test.go index 01e1d2c4..c9beab85 100644 --- a/cmd/root_test.go +++ b/cmd/root_test.go @@ -19,60 +19,6 @@ import ( const TestRegistry = "example.com/alice" -func TestRoot_PersistentFlags(t *testing.T) { - tests := []struct { - name string - args []string - expected bool - }{ - { - name: "not provided", - args: []string{"list"}, - expected: false, - }, - { - name: "provided as root flags", - args: []string{"--verbose", "list"}, - expected: true, - }, - { - name: "provided as sub-command flags", - args: []string{"list", "--verbose"}, - expected: true, - }, - { - name: "provided as sub-sub-command flags", - args: []string{"repositories", "list", "--verbose"}, - expected: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - _ = fromTempDirectory(t) - - cmd := NewCreateCmd(NewClient) // Create a function - cmd.SetArgs([]string{"--language", "go", "myfunc"}) // providing language - if err := cmd.Execute(); err != nil { // fail on any errors - t.Fatal(err) - } - - // Assert the persistent variables were propagated to the Client constructor - // when the command is actually invoked. - cmd = NewRootCmd(RootCommandConfig{NewClient: func(cfg ClientConfig, _ ...fn.Option) (*fn.Client, func()) { - if cfg.Verbose != tt.expected { - t.Fatal("verbose persistent flag not propagated correctly") - } - return fn.New(), func() {} - }}) - cmd.SetArgs(tt.args) - if err := cmd.Execute(); err != nil { - t.Fatal(err) - } - }) - } -} - func TestRoot_mergeEnvMaps(t *testing.T) { a := "A" @@ -186,7 +132,7 @@ func TestRoot_mergeEnvMaps(t *testing.T) { // of the root command. This allows, for example, to have help text correct // when both embedded as a plugin or standalone. func TestRoot_CommandNameParameterized(t *testing.T) { - expectedSynopsis := "%v [-v|--verbose] [args]" + expectedSynopsis := "%v is the command line interface for" tests := []string{ "func", // standalone @@ -206,7 +152,7 @@ func TestRoot_CommandNameParameterized(t *testing.T) { if cmd.Use != testName { t.Fatalf("expected command Use '%v', got '%v'", testName, cmd.Use) } - if !strings.Contains(out.String(), fmt.Sprintf(expectedSynopsis, testName)) { + if !strings.HasPrefix(out.String(), fmt.Sprintf(expectedSynopsis, testName)) { t.Logf("Testing '%v'\n", testName) t.Log(out.String()) t.Fatalf("Help text does not include substituted name '%v'", testName) @@ -233,12 +179,6 @@ func TestVerbose(t *testing.T) { want: "v0.42.0", wantLF: 1, }, - { - name: "verbose as root's flag", - args: []string{"--verbose", "version"}, - want: "Version: v0.42.0-cafe-1970-01-01", - wantLF: 3, - }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/cmd/run.go b/cmd/run.go index 45b54195..f9905ade 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -10,6 +10,7 @@ import ( "github.com/spf13/cobra" "knative.dev/client/pkg/util" + "knative.dev/func/pkg/config" fn "knative.dev/func/pkg/functions" ) @@ -43,7 +44,15 @@ to the function's source. Use --build to override this behavior. `, SuggestFor: []string{"rnu"}, - PreRunE: bindEnv("build", "path", "registry"), + PreRunE: bindEnv("build", "path", "registry", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runRun(cmd, args, newClient) + }, + } + + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } cmd.Flags().StringArrayP("env", "e", []string{}, @@ -53,11 +62,8 @@ to the function's source. Use --build to override this behavior. cmd.Flags().StringP("build", "b", "auto", "Build the function. [auto|true|false].") cmd.Flags().Lookup("build").NoOptDefVal = "true" // --build is equivalient to --build=true cmd.Flags().StringP("registry", "r", "", "Registry + namespace part of the image if building, ex 'quay.io/myuser' (Env: $FUNC_REGISTRY)") - setPathFlag(cmd) - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runRun(cmd, args, newClient) - } + addPathFlag(cmd) + addVerboseFlag(cmd, cfg.Verbose) return cmd } diff --git a/cmd/templates.go b/cmd/templates.go index d3fb5af5..6d1782d4 100644 --- a/cmd/templates.go +++ b/cmd/templates.go @@ -11,6 +11,7 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" + "knative.dev/func/pkg/config" fn "knative.dev/func/pkg/functions" ) @@ -20,10 +21,10 @@ var ErrTemplateRepoDoesNotExist = errors.New("template repo does not exist") func NewTemplatesCmd(newClient ClientFactory) *cobra.Command { cmd := &cobra.Command{ Use: "templates", - Short: "Templates", + Short: "List available function source templates", Long: ` NAME - {{rootCmdUse}} templates - list available templates + {{rootCmdUse}} templates - list available function source templates SYNOPSIS {{rootCmdUse}} templates [language] [--json] [-r|--repository] @@ -60,15 +61,20 @@ EXAMPLES "temolates", "temllates", "temppates", "tempmates", "tempkates", "templstes", "templztes", "templqtes", "templares", "templages", //nolint:misspell "templayes", "templatee", "templatea", "templated", "templatew"}, - PreRunE: bindEnv("json", "repository"), + PreRunE: bindEnv("json", "repository", "verbose"), + RunE: func(cmd *cobra.Command, args []string) error { + return runTemplates(cmd, args, newClient) + }, + } + + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } cmd.Flags().Bool("json", false, "Set output to JSON format. (Env: $FUNC_JSON)") cmd.Flags().StringP("repository", "r", "", "URI to a specific repository to consider (Env: $FUNC_REPOSITORY)") - - cmd.RunE = func(cmd *cobra.Command, args []string) error { - return runTemplates(cmd, args, newClient) - } + addVerboseFlag(cmd, cfg.Verbose) return cmd } diff --git a/cmd/templates/template_engine_test.go b/cmd/templates/template_engine_test.go index 419f57da..f3728d80 100644 --- a/cmd/templates/template_engine_test.go +++ b/cmd/templates/template_engine_test.go @@ -125,7 +125,7 @@ func validateRootUsageOutput(t *testing.T, stdOut string) { assert.Assert(t, util.ContainsAll(stdOut, "header-1", "g1.1", "desc-g1.1", "g1.2", "desc-g1.2")) assert.Assert(t, util.ContainsAll(stdOut, "header-2", "g2.1", "desc-g2.1", "g2.2", "desc-g2.2", "g2.3", "desc-g2.3")) assert.Assert(t, util.ContainsAll(stdOut, "Use", "root", "--help")) - assert.Assert(t, util.ContainsAll(stdOut, "Use", "root", "[command]")) + assert.Assert(t, util.ContainsAll(stdOut, "Use", "root", "")) } func validateSubUsageOutput(t *testing.T, stdOut string, cmd *cobra.Command) { diff --git a/cmd/templates/templates.go b/cmd/templates/templates.go index 7b72ab61..35f710f0 100644 --- a/cmd/templates/templates.go +++ b/cmd/templates/templates.go @@ -25,7 +25,7 @@ import ( const ( // sectionUsage is the help template section that displays the command's usage. - sectionUsage = `{{if (ne .UseLine "")}}Usage: + sectionUsage = `{{if and .Runnable (ne .UseLine "") (not (isRootCmd .))}}Usage: {{useLine .}} {{end}}` @@ -65,7 +65,7 @@ const ( {{end}}` // sectionTipsHelp is the help template section that displays the '--help' hint. - sectionTipsHelp = `{{if .HasSubCommands}}Use "{{rootCmdName}} [command] --help" for more information about a given command. + sectionTipsHelp = `{{if .HasSubCommands}}Use "{{rootCmdName}} --help" for more information about a given command. {{end}}` ) diff --git a/cmd/version.go b/cmd/version.go index acdc6f46..7afb39da 100644 --- a/cmd/version.go +++ b/cmd/version.go @@ -5,12 +5,13 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" + "knative.dev/func/pkg/config" ) func NewVersionCmd(version Version) *cobra.Command { cmd := &cobra.Command{ Use: "version", - Short: "Show the version", + Short: "Function client version information", Long: ` NAME {{rootCmdUse}} version - function version information. @@ -31,12 +32,15 @@ DESCRIPTION `, SuggestFor: []string{"vers", "verison"}, //nolint:misspell PreRunE: bindEnv("verbose"), + Run: func(cmd *cobra.Command, args []string) { + runVersion(cmd, args, version) + }, } - - // Run Action - cmd.Run = func(cmd *cobra.Command, args []string) { - runVersion(cmd, args, version) + cfg, err := config.NewDefault() + if err != nil { + fmt.Fprintf(cmd.OutOrStdout(), "error loading config at '%v'. %v\n", config.File(), err) } + addVerboseFlag(cmd, cfg.Verbose) return cmd } diff --git a/docs/reference/func.md b/docs/reference/func.md index 63a0e103..1df7423b 100644 --- a/docs/reference/func.md +++ b/docs/reference/func.md @@ -1,53 +1,40 @@ ## func -Serverless functions +func manages Knative Functions ### Synopsis -Knative serverless functions +func is the command line interface for managing Knative Function resources - Create, build and deploy Knative functions + Create a new Node.js function in the current directory: + func create --language node myfunction -SYNOPSIS - func [-v|--verbose] [args] + Deploy the function using Docker hub to host the image: + func deploy --registry docker.io/alice -EXAMPLES - - o Create a Node function in the current directory - $ func create --language node . - - o Deploy the function defined in the current working directory to the - currently connected cluster, specifying a container registry in place of - quay.io/user for the function's container. - $ func deploy --registry quay.io.user - - o Invoke the function defined in the current working directory with an example - request. - $ func invoke - - For more examples, see 'func [command] --help'. +Learn more about Functions: https://knative.dev/docs/functions/ +Learn more about Knative at: https://knative.dev ### Options ``` - -h, --help help for func - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -h, --help help for func ``` ### SEE ALSO -* [func build](func_build.md) - Build a Function -* [func completion](func_completion.md) - Generate completion scripts for bash, fish and zsh +* [func build](func_build.md) - Build a function container +* [func completion](func_completion.md) - Output functions shell completion code * [func config](func_config.md) - Configure a function -* [func create](func_create.md) - Create a function project +* [func create](func_create.md) - Create a function * [func delete](func_delete.md) - Undeploy a function -* [func deploy](func_deploy.md) - Deploy a Function -* [func describe](func_describe.md) - Describe a Function -* [func invoke](func_invoke.md) - Invoke a function +* [func deploy](func_deploy.md) - Deploy a function +* [func describe](func_describe.md) - Describe a function +* [func invoke](func_invoke.md) - Invoke a local or remote function * [func languages](func_languages.md) - List available function language runtimes -* [func list](func_list.md) - List functions +* [func list](func_list.md) - List deployed functions * [func repository](func_repository.md) - Manage installed template repositories * [func run](func_run.md) - Run the function locally -* [func templates](func_templates.md) - Templates -* [func version](func_version.md) - Show the version +* [func templates](func_templates.md) - List available function source templates +* [func version](func_version.md) - Function client version information diff --git a/docs/reference/func_build.md b/docs/reference/func_build.md index 7edb9813..5a029214 100644 --- a/docs/reference/func_build.md +++ b/docs/reference/func_build.md @@ -1,12 +1,12 @@ ## func build -Build a Function +Build a function container ### Synopsis NAME - func build - Build a Function + func build - Build a function container locally withoud deploying SYNOPSIS func build [-r|--registry] [--builder] [--builder-image] [--push] @@ -57,22 +57,17 @@ func build ``` -b, --builder string Builder to use when creating the function's container. Currently supported builders are "pack" and "s2i". (Env: $FUNC_BUILDER) (default "pack") --builder-image string Specify a custom builder image for use by the builder other than its default. (Env: $FUNC_BUILDER_IMAGE) - -c, --confirm Prompt to confirm all configuration options (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) -h, --help help for build -i, --image string Full image name in the form [registry]/[namespace]/[name]:[tag] (optional). This option takes precedence over --registry (Env: $FUNC_IMAGE) - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) --platform string Optionally specify a target platform, for example "linux/amd64" when using the s2i build strategy -u, --push Attempt to push the function image to the configured registry after being successfully built -r, --registry string Container registry + registry namespace. (ex 'ghcr.io/myuser'). The full image name is automatically determined using this along with function name. (Env: $FUNC_REGISTRY) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_completion.md b/docs/reference/func_completion.md index 58faefd6..d562c2f6 100644 --- a/docs/reference/func_completion.md +++ b/docs/reference/func_completion.md @@ -1,6 +1,6 @@ ## func completion -Generate completion scripts for bash, fish and zsh +Output functions shell completion code ### Synopsis @@ -28,13 +28,7 @@ func completion -h, --help help for completion ``` -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) -``` - ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_config.md b/docs/reference/func_config.md index 8aa01963..d46755de 100644 --- a/docs/reference/func_config.md +++ b/docs/reference/func_config.md @@ -19,18 +19,13 @@ func config ``` -h, --help help for config - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions * [func config envs](func_config_envs.md) - List and manage configured environment variable for a function * [func config labels](func_config_labels.md) - List and manage configured labels for a function * [func config volumes](func_config_volumes.md) - List and manage configured volumes for a function diff --git a/docs/reference/func_config_envs.md b/docs/reference/func_config_envs.md index 302ab78d..738f8a37 100644 --- a/docs/reference/func_config_envs.md +++ b/docs/reference/func_config_envs.md @@ -19,13 +19,8 @@ func config envs ``` -h, --help help for envs -o, --output string Output format (human|json) (Env: $FUNC_OUTPUT) (default "human") - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_config_envs_add.md b/docs/reference/func_config_envs_add.md index 7ee22630..482d002b 100644 --- a/docs/reference/func_config_envs_add.md +++ b/docs/reference/func_config_envs_add.md @@ -43,14 +43,9 @@ func config envs add --value='{{ configMap:confMapName }}' ``` -h, --help help for add --name string Name of the environment variable. - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) --value string Value of the environment variable. -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_config_envs_remove.md b/docs/reference/func_config_envs_remove.md index aa4bd783..b7e34aac 100644 --- a/docs/reference/func_config_envs_remove.md +++ b/docs/reference/func_config_envs_remove.md @@ -18,13 +18,8 @@ func config envs remove ``` -h, --help help for remove - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_config_labels.md b/docs/reference/func_config_labels.md index 662e8bde..531a4120 100644 --- a/docs/reference/func_config_labels.md +++ b/docs/reference/func_config_labels.md @@ -18,13 +18,8 @@ func config labels ``` -h, --help help for labels - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_config_labels_add.md b/docs/reference/func_config_labels_add.md index ec0b506d..9a027ad3 100644 --- a/docs/reference/func_config_labels_add.md +++ b/docs/reference/func_config_labels_add.md @@ -21,13 +21,8 @@ func config labels add ``` -h, --help help for add - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_config_labels_remove.md b/docs/reference/func_config_labels_remove.md index 3054ff33..4114232c 100644 --- a/docs/reference/func_config_labels_remove.md +++ b/docs/reference/func_config_labels_remove.md @@ -18,13 +18,8 @@ func config labels remove ``` -h, --help help for remove - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_config_volumes.md b/docs/reference/func_config_volumes.md index 75d207a8..331c707a 100644 --- a/docs/reference/func_config_volumes.md +++ b/docs/reference/func_config_volumes.md @@ -18,13 +18,8 @@ func config volumes ``` -h, --help help for volumes - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_config_volumes_add.md b/docs/reference/func_config_volumes_add.md index ad4e55e2..b44ca89f 100644 --- a/docs/reference/func_config_volumes_add.md +++ b/docs/reference/func_config_volumes_add.md @@ -18,13 +18,8 @@ func config volumes add ``` -h, --help help for add - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_config_volumes_remove.md b/docs/reference/func_config_volumes_remove.md index a81f545c..d4fbffe4 100644 --- a/docs/reference/func_config_volumes_remove.md +++ b/docs/reference/func_config_volumes_remove.md @@ -18,13 +18,8 @@ func config volumes remove ``` -h, --help help for remove - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO diff --git a/docs/reference/func_create.md b/docs/reference/func_create.md index d613852d..0ed4b03c 100644 --- a/docs/reference/func_create.md +++ b/docs/reference/func_create.md @@ -1,12 +1,12 @@ ## func create -Create a function project +Create a function ### Synopsis NAME - func create - Create a function project. + func create - Create a function SYNOPSIS func create [-l|--language] [-t|--template] [-r|--repository] @@ -68,20 +68,15 @@ func create ### Options ``` - -c, --confirm Prompt to confirm all options interactively (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) -h, --help help for create -l, --language string Language Runtime (see help text for list) (Env: $FUNC_LANGUAGE) -r, --repository string URI to a Git repository containing the specified template (Env: $FUNC_REPOSITORY) -t, --template string Function template. (see help text for list) (Env: $FUNC_TEMPLATE) (default "http") -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_delete.md b/docs/reference/func_delete.md index c07591ff..1f5e2f43 100644 --- a/docs/reference/func_delete.md +++ b/docs/reference/func_delete.md @@ -33,19 +33,14 @@ func delete -n apps myfunc ``` -a, --all string Delete all resources created for a function, eg. Pipelines, Secrets, etc. (Env: $FUNC_ALL) (allowed values: "true", "false") (default "true") - -c, --confirm Prompt to confirm all configuration options (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) -h, --help help for delete -n, --namespace string The namespace in which to delete. (Env: $FUNC_NAMESPACE) - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_deploy.md b/docs/reference/func_deploy.md index 0b008a5e..a1775b5d 100644 --- a/docs/reference/func_deploy.md +++ b/docs/reference/func_deploy.md @@ -1,12 +1,12 @@ ## func deploy -Deploy a Function +Deploy a function ### Synopsis NAME - func deploy - Deploy a Function + func deploy - Deploy a function SYNOPSIS func deploy [-R|--remote] [-r|--registry] [-i|--image] [-n|--namespace] @@ -106,7 +106,7 @@ func deploy --build string[="true"] Build the function. [auto|true|false]. (Env: $FUNC_BUILD) (default "auto") -b, --builder string Builder to use when creating the function's container. Currently supported builders are "pack" and "s2i". (default "pack") --builder-image string Specify a custom builder image for use by the builder other than its default. ($FUNC_BUILDER_IMAGE) - -c, --confirm Prompt to confirm all configuration options (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) -e, --env stringArray Environment variable to set in the form NAME=VALUE. You may provide this flag multiple times for setting multiple environment variables. To unset, specify the environment variable name followed by a "-" (e.g., NAME-). -t, --git-branch string Git revision (branch) to be used when deploying via a git repository (Env: $FUNC_GIT_BRANCH) -d, --git-dir string Directory in the repo to find the function (default is the root) (Env: $FUNC_GIT_DIR) @@ -114,20 +114,15 @@ func deploy -h, --help help for deploy -i, --image string Full image name in the form [registry]/[namespace]/[name]:[tag]@[digest]. This option takes precedence over --registry. Specifying digest is optional, but if it is given, 'build' and 'push' phases are disabled. (Env: $FUNC_IMAGE) -n, --namespace string Deploy into a specific namespace. Will use function's current namespace by default if already deployed, and the currently active namespace if it can be determined. (Env: $FUNC_NAMESPACE) - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) --platform string Optionally specify a specific platform to build for (e.g. linux/amd64). (Env: $FUNC_PLATFORM) -u, --push Push the function image to registry before deploying. (Env: $FUNC_PUSH) (default true) -r, --registry string Container registry + registry namespace. (ex 'ghcr.io/myuser'). The full image name is automatically determined using this along with function name. (Env: $FUNC_REGISTRY) --remote Trigger a remote deployment. Default is to deploy and build from the local system (Env: $FUNC_REMOTE) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_describe.md b/docs/reference/func_describe.md index 5c06603c..37c33d1c 100644 --- a/docs/reference/func_describe.md +++ b/docs/reference/func_describe.md @@ -1,10 +1,10 @@ ## func describe -Describe a Function +Describe a function ### Synopsis -Describe a Function +Describe a function Prints the name, route and event subscriptions for a deployed function in the current directory or from the directory specified with --path. @@ -32,16 +32,11 @@ func describe --output yaml --path myotherfunc -h, --help help for describe -n, --namespace string The namespace in which to look for the named function. (Env: $FUNC_NAMESPACE) -o, --output string Output format (human|plain|json|xml|yaml|url) (Env: $FUNC_OUTPUT) (default "human") - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_invoke.md b/docs/reference/func_invoke.md index 45f8bf4b..0ba0a6f0 100644 --- a/docs/reference/func_invoke.md +++ b/docs/reference/func_invoke.md @@ -1,6 +1,6 @@ ## func invoke -Invoke a function +Invoke a local or remote function ### Synopsis @@ -94,7 +94,7 @@ func invoke ### Options ``` - -c, --confirm Prompt to confirm all options interactively. (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) --content-type string Content Type of the data. (Env: $FUNC_CONTENT_TYPE) (default "application/json") --data string Data to send in the request. (Env: $FUNC_DATA) (default "{\"message\":\"Hello World\"}") --file string Path to a file to use as data. Overrides --data flag and should be sent with a correct --content-type. (Env: $FUNC_FILE) @@ -102,19 +102,14 @@ func invoke -h, --help help for invoke --id string ID for the request data. (Env: $FUNC_ID) -i, --insecure Allow insecure server connections when using SSL. (Env: $FUNC_INSECURE) - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) --source string Source value for the request data. (Env: $FUNC_SOURCE) (default "/boson/fn") -t, --target string Function instance to invoke. Can be 'local', 'remote' or a URL. Defaults to auto-discovery if not provided. (Env: $FUNC_TARGET) --type string Type value for the request data. (Env: $FUNC_TYPE) (default "boson.fn") -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_languages.md b/docs/reference/func_languages.md index 008d84bd..cd991fba 100644 --- a/docs/reference/func_languages.md +++ b/docs/reference/func_languages.md @@ -48,15 +48,10 @@ func languages -h, --help help for languages --json Set output to JSON format. (Env: $FUNC_JSON) -r, --repository string URI to a specific repository to consider (Env: $FUNC_REPOSITORY) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_list.md b/docs/reference/func_list.md index 5bfac318..106285e2 100644 --- a/docs/reference/func_list.md +++ b/docs/reference/func_list.md @@ -1,10 +1,10 @@ ## func list -List functions +List deployed functions ### Synopsis -List functions +List deployed functions Lists all deployed functions in a given namespace. @@ -35,15 +35,10 @@ func list --all-namespaces --output json -h, --help help for list -n, --namespace string The namespace for which to list functions. (Env: $FUNC_NAMESPACE) (default "default") -o, --output string Output format (human|plain|json|xml|yaml) (Env: $FUNC_OUTPUT) (default "human") -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_repository.md b/docs/reference/func_repository.md index 4ddc4799..be31ed80 100644 --- a/docs/reference/func_repository.md +++ b/docs/reference/func_repository.md @@ -136,19 +136,14 @@ func repository ### Options ``` - -c, --confirm Prompt to confirm all options interactively (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) -h, --help help for repository -``` - -### Options inherited from parent commands - -``` -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions * [func repository add](func_repository_add.md) - Add a repository * [func repository list](func_repository_list.md) - List repositories * [func repository remove](func_repository_remove.md) - Remove a repository diff --git a/docs/reference/func_repository_add.md b/docs/reference/func_repository_add.md index 13858cb5..344fc7c7 100644 --- a/docs/reference/func_repository_add.md +++ b/docs/reference/func_repository_add.md @@ -9,13 +9,8 @@ func repository add ### Options ``` - -c, --confirm Prompt to confirm all options interactively (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) -h, --help help for add -``` - -### Options inherited from parent commands - -``` -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` diff --git a/docs/reference/func_repository_list.md b/docs/reference/func_repository_list.md index fa190dd4..29136cf3 100644 --- a/docs/reference/func_repository_list.md +++ b/docs/reference/func_repository_list.md @@ -9,12 +9,8 @@ func repository list ### Options ``` - -h, --help help for list -``` - -### Options inherited from parent commands - -``` + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) + -h, --help help for list -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` diff --git a/docs/reference/func_repository_remove.md b/docs/reference/func_repository_remove.md index 615308a1..05935d12 100644 --- a/docs/reference/func_repository_remove.md +++ b/docs/reference/func_repository_remove.md @@ -9,13 +9,8 @@ func repository remove ### Options ``` - -c, --confirm Prompt to confirm all options interactively (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) -h, --help help for remove -``` - -### Options inherited from parent commands - -``` -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` diff --git a/docs/reference/func_repository_rename.md b/docs/reference/func_repository_rename.md index fc070898..1c0ca900 100644 --- a/docs/reference/func_repository_rename.md +++ b/docs/reference/func_repository_rename.md @@ -9,13 +9,8 @@ func repository rename ### Options ``` - -c, --confirm Prompt to confirm all options interactively (Env: $FUNC_CONFIRM) + -c, --confirm Prompt to confirm options interactively (Env: $FUNC_CONFIRM) -h, --help help for rename -``` - -### Options inherited from parent commands - -``` -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` diff --git a/docs/reference/func_run.md b/docs/reference/func_run.md index 8193eeeb..afc79b49 100644 --- a/docs/reference/func_run.md +++ b/docs/reference/func_run.md @@ -45,17 +45,12 @@ func run --build=false -b, --build string[="true"] Build the function. [auto|true|false]. (default "auto") -e, --env stringArray Environment variable to set in the form NAME=VALUE. You may provide this flag multiple times for setting multiple environment variables. To unset, specify the environment variable name followed by a "-" (e.g., NAME-). -h, --help help for run - -p, --path string Path to the project directory. Default is current working directory (Env: $FUNC_PATH) + -p, --path string Path to the function. Default is current directory (Env: $FUNC_PATH) -r, --registry string Registry + namespace part of the image if building, ex 'quay.io/myuser' (Env: $FUNC_REGISTRY) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_templates.md b/docs/reference/func_templates.md index b6f16c78..220c6bd5 100644 --- a/docs/reference/func_templates.md +++ b/docs/reference/func_templates.md @@ -1,12 +1,12 @@ ## func templates -Templates +List available function source templates ### Synopsis NAME - func templates - list available templates + func templates - list available function source templates SYNOPSIS func templates [language] [--json] [-r|--repository] @@ -49,15 +49,10 @@ func templates -h, --help help for templates --json Set output to JSON format. (Env: $FUNC_JSON) -r, --repository string URI to a specific repository to consider (Env: $FUNC_REPOSITORY) -``` - -### Options inherited from parent commands - -``` - -v, --verbose Print verbose logs ($FUNC_VERBOSE) + -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions diff --git a/docs/reference/func_version.md b/docs/reference/func_version.md index 0d2343f0..52d40e5d 100644 --- a/docs/reference/func_version.md +++ b/docs/reference/func_version.md @@ -1,6 +1,6 @@ ## func version -Show the version +Function client version information ### Synopsis @@ -30,16 +30,11 @@ func version ### Options ``` - -h, --help help for version -``` - -### Options inherited from parent commands - -``` + -h, --help help for version -v, --verbose Print verbose logs ($FUNC_VERBOSE) ``` ### SEE ALSO -* [func](func.md) - Serverless functions +* [func](func.md) - func manages Knative Functions