Andrew Rynhard c63ef4477b
feat: add TALOSCONFIG env var (#422)
Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
2019-02-25 15:06:49 -08:00

58 lines
1.4 KiB
Go

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package cmd
import (
"fmt"
"os"
"os/user"
"path"
"github.com/autonomy/talos/internal/pkg/constants"
"github.com/spf13/cobra"
)
var (
ca string
crt string
key string
organization string
rsa bool
name string
csr string
ip string
hours int
kubernetes bool
talosconfig string
)
// rootCmd represents the base command when called without any subcommands
var rootCmd = &cobra.Command{
Use: "osctl",
Short: "A CLI for out-of-band management of Kubernetes nodes created by Talos",
Long: ``,
}
// Execute adds all child commands to the root command and sets flags appropriately.
// This is called by main.main(). It only needs to happen once to the rootCmd.
func Execute() {
var (
defaultTalosConfig string
ok bool
)
if defaultTalosConfig, ok = os.LookupEnv(constants.TalosConfigEnvVar); !ok {
u, err := user.Current()
if err != nil {
return
}
defaultTalosConfig = path.Join(u.HomeDir, ".talos", "config")
}
rootCmd.PersistentFlags().StringVar(&talosconfig, "talosconfig", defaultTalosConfig, "The path to the Talos configuration file")
if err := rootCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}