mirror of https://github.com/knative/func.git
54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"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: "Function client version information",
|
|
Long: `
|
|
NAME
|
|
{{rootCmdUse}} version - function version information.
|
|
|
|
SYNOPSIS
|
|
{{rootCmdUse}} version [-v|--verbose]
|
|
|
|
DESCRIPTION
|
|
Print version information. Use the --verbose option to see date stamp and
|
|
associated git source control hash if available.
|
|
|
|
o Print the functions version
|
|
$ {{rootCmdUse}} version
|
|
|
|
o Print the functions version along with source git commit hash and other
|
|
metadata.
|
|
$ {{rootCmdUse}} version -v
|
|
|
|
`,
|
|
SuggestFor: []string{"vers", "version"}, //nolint:misspell
|
|
PreRunE: bindEnv("verbose"),
|
|
Run: func(cmd *cobra.Command, _ []string) {
|
|
runVersion(cmd, 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
|
|
}
|
|
|
|
// Run
|
|
func runVersion(cmd *cobra.Command, version Version) {
|
|
version.Verbose = viper.GetBool("verbose")
|
|
fmt.Fprintf(cmd.OutOrStdout(), "%v\n", version)
|
|
}
|