From d313e4618169dfe3a41a8cdc99bae78ae7410b23 Mon Sep 17 00:00:00 2001 From: James Walker Date: Tue, 5 Jan 2021 03:06:05 +0000 Subject: [PATCH] Ensure config dir Closes #5 --- cmd/root.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cmd/root.go b/cmd/root.go index f81e050..8809a03 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -25,6 +25,7 @@ import ( "errors" "fmt" "os" + "path" "github.com/spf13/cobra" @@ -61,10 +62,24 @@ func Execute() { func init() { cobra.OnInitialize(initConfig) + ensureConfigDir() rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.workon.yaml)") } +// ensureConfigDir ensures ~/.workon/ exists +func ensureConfigDir() { + home, err := homedir.Dir() + if err != nil { + fmt.Println(err) + os.Exit(1) + } + configDir := path.Join(home, ".workon") + if _, err = os.Stat(configDir); os.IsNotExist(err) { + os.Mkdir(configDir, 0755) + } +} + // initConfig reads in config file and ENV variables if set. func initConfig() { if cfgFile != "" {