]> git.lizzy.rs Git - micro.git/blobdiff - internal/config/config.go
Adds options for tab bar and tab color reversing (#2480)
[micro.git] / internal / config / config.go
index 5834d9a4ba274d5b10e679dfb0871caefa815714..d2ceb058d677a2c5bcb79770dc10351e8a5983f4 100644 (file)
@@ -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