X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=internal%2Fconfig%2Fconfig.go;h=d2ceb058d677a2c5bcb79770dc10351e8a5983f4;hb=585dcc7d19a6f39004e153a7c8c15f3eebac77fa;hp=5834d9a4ba274d5b10e679dfb0871caefa815714;hpb=60eec0eccd0d1bd9b8aaebcd17b02d6bfbc7b20a;p=micro.git diff --git a/internal/config/config.go b/internal/config/config.go index 5834d9a4..d2ceb058 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -3,6 +3,7 @@ package config import ( "errors" "os" + "path/filepath" homedir "github.com/mitchellh/go-homedir" ) @@ -22,11 +23,12 @@ func InitConfigDir(flagConfigDir string) error { // The user has not set $XDG_CONFIG_HOME so we should act like it was set to ~/.config home, err := homedir.Dir() if err != nil { - return errors.New("Error finding your home directory\nCan't load config files") + return errors.New("Error finding your home directory\nCan't load config files: " + err.Error()) } - xdgHome = home + "/.config" + xdgHome = filepath.Join(home, ".config") } - microHome = xdgHome + "/micro" + + microHome = filepath.Join(xdgHome, "micro") } ConfigDir = microHome @@ -39,20 +41,11 @@ func InitConfigDir(flagConfigDir string) error { } } - if _, err := os.Stat(microHome); os.IsNotExist(err) { - // If the microHome doesn't exist we should create it - err = os.Mkdir(microHome, os.ModePerm) - if err != nil { - return errors.New("Error creating XDG_CONFIG_HOME directory: " + err.Error()) - } - } - - if _, err := os.Stat(ConfigDir); os.IsNotExist(err) { - // If the micro specific config directory doesn't exist we should create that too - err = os.Mkdir(ConfigDir, os.ModePerm) - if err != nil { - return errors.New("Error creating configuration directory: " + err.Error()) - } + // Create micro config home directory if it does not exist + // This creates parent directories and does nothing if it already exists + err := os.MkdirAll(ConfigDir, os.ModePerm) + if err != nil { + return errors.New("Error creating configuration directory: " + err.Error()) } return e