From 29b796a552d8ad4c62f78f7d9fe5abcfcc6a8130 Mon Sep 17 00:00:00 2001 From: aditya-K2 Date: Mon, 12 Sep 2022 23:16:24 +0530 Subject: [PATCH] Fixes #33 Also mentioned at (https://github.com/aditya-K2/gomp/issues/1#issuecomment-1205090265) `~` is not expanded to home directory, Hence adding an internal check for the same. --- config/config.go | 8 ++++++++ utils/utils.go | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/config/config.go b/config/config.go index a653821..63b1ea6 100644 --- a/config/config.go +++ b/config/config.go @@ -29,15 +29,23 @@ var ( ) func ReadConfig() { + for k, v := range defaults { viper.SetDefault(k, v) } + viper.SetConfigName("config") viper.AddConfigPath(HOME_DIR + "/.config/gomp") + err := viper.ReadInConfig() if err != nil { fmt.Println("Could Not Read Config file.") } + + // Expanding ~ to the User's Home Directory + viper.Set("MUSIC_DIRECTORY", utils.ExpandHomeDir(viper.GetString("MUSIC_DIRECTORY"))) + viper.Set("DEFAULT_IMAGE_PATH", utils.ExpandHomeDir(viper.GetString("DEFAULT_IMAGE_PATH"))) + viper.Set("CACHE_DIR", utils.ExpandHomeDir(viper.GetString("CACHE_DIR"))) } func GenerateKeyMap(funcMap map[string]func()) { diff --git a/utils/utils.go b/utils/utils.go index 95db7bf..772096d 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -2,6 +2,8 @@ package utils import ( "io/ioutil" + "os" + "path/filepath" "strconv" "strings" "syscall" @@ -117,6 +119,17 @@ func CheckDirectoryFmt(path string) string { } } +func ExpandHomeDir(path string) string { + HOME_DIR, _ := os.UserHomeDir() + if strings.HasPrefix(path, "~/") { + return filepath.Join(HOME_DIR, path[1:]) + } else if path == "~" { + return HOME_DIR + } else { + return path + } +} + func GetMatchedString(a []int, s, color string) string { // The Matches are sorted so we just have to traverse the Matches and if the two adjacent matches are not consecutive // then we append the color string at the start + offset and the nulcol ( reset ) at end + offset + 1 and then reset