diff --git a/cmd/root.go b/cmd/root.go index c1eb8122..3190234c 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -37,7 +37,6 @@ import ( "github.com/rancher/k3d/cmd/start" "github.com/rancher/k3d/cmd/stop" "github.com/rancher/k3d/pkg/runtimes" - "github.com/rancher/k3d/version" log "github.com/sirupsen/logrus" @@ -47,6 +46,7 @@ import ( // RootFlags describes a struct that holds flags that can be set on root level of the command type RootFlags struct { debugLogging bool + version bool runtime string } @@ -62,6 +62,11 @@ var rootCmd = &cobra.Command{ k3d is a wrapper CLI that helps you to easily create k3s clusters inside docker. Nodes of a k3d cluster are docker containers running a k3s image. All Nodes of a k3d cluster are part of the same docker network.`, + Run: func(cmd *cobra.Command, args []string) { + if flags.version { + printVersion() + } + }, } // Execute adds all child commands to the root command and sets flags appropriately. @@ -82,6 +87,7 @@ func init() { rootCmd.PersistentFlags().StringVarP(&flags.runtime, "runtime", "r", "docker", "Choose a container runtime environment [docker, containerd]") // add local flags + rootCmd.Flags().BoolVar(&flags.version, "version", false, "Show k3d and default k3s version") // add subcommands rootCmd.AddCommand(NewCmdCompletion()) @@ -97,7 +103,7 @@ func init() { Short: "Print k3d version", Long: "Print k3d version", Run: func(cmd *cobra.Command, args []string) { - fmt.Printf("k3d version %s\n", version.GetVersion()) + printVersion() }, }) } @@ -149,6 +155,11 @@ func initRuntime() { log.Debugf("Selected runtime is '%T'", runtimes.SelectedRuntime) } +func printVersion() { + fmt.Printf("k3d version %s\n", version.GetVersion()) + fmt.Printf("k3s version %s (default)\n", version.K3sVersion) +} + // Completion var completionFunctions = map[string]func(io.Writer) error{ "bash": rootCmd.GenBashCompletion,