diff --git a/cfg/config_files.go b/cfg/config_files.go index 85e848e8f..ff7f997e0 100644 --- a/cfg/config_files.go +++ b/cfg/config_files.go @@ -64,7 +64,7 @@ func LoadConfigFile(filePath string) *config.Config { cfg, err := config.ParseYamlFile(absPath) if err != nil { - fmt.Println("\n\n\033[1m ERROR:\033[0m Could not load '\033[0;33mconfig.yml\033[0m'.\n Please add a \033[0;33mconfig.yml\033[0m file to your \033[0;33m~/.wtf\033[0m directory.\n See \033[1;34mhttps://github.com/senorprogrammer/wtf\033[0m for details.\n") + fmt.Println("\n\n\033[1m ERROR:\033[0m Could not load '\033[0;33mconfig.yml\033[0m'.\n Please add a \033[0;33mconfig.yml\033[0m file to your \033[0;33m~/.wtf\033[0m directory.\n See \033[1;34mhttps://github.com/senorprogrammer/wtf\033[0m for details.") fmt.Printf(" %s\n", err.Error()) os.Exit(1) } diff --git a/wtf/config_files.go b/wtf/config_files.go deleted file mode 100644 index ff57654dc..000000000 --- a/wtf/config_files.go +++ /dev/null @@ -1,172 +0,0 @@ -package wtf - -import ( - "fmt" - "io/ioutil" - "os" - - "github.com/olebedev/config" -) - -func ConfigDir() (string, error) { - configDir, err := ExpandHomeDir("~/.wtf/") - if err != nil { - return "", err - } - - return configDir, nil -} - -// CreateConfigDir creates the .wtf directory in the user's home dir -func CreateConfigDir() { - configDir, _ := ConfigDir() - - if _, err := os.Stat(configDir); os.IsNotExist(err) { - err := os.Mkdir(configDir, os.ModePerm) - if err != nil { - panic(err) - } - } -} - -// CreateFile creates the named file in the config directory, if it does not already exist. -// If the file exists it does not recreate it. -// If successful, eturns the absolute path to the file -// If unsuccessful, returns an error -func CreateFile(fileName string) (string, error) { - configDir, err := ConfigDir() - if err != nil { - return "", err - } - - filePath := fmt.Sprintf("%s/%s", configDir, fileName) - - // Check if the file already exists; if it does not, create it - _, err = os.Stat(filePath) - if err != nil { - if os.IsNotExist(err) { - _, err = os.Create(filePath) - if err != nil { - return "", err - } - } else { - return "", err - } - } - - return filePath, nil -} - -// LoadConfigFile loads the config.yml file to configure the app -func LoadConfigFile(filePath string) *config.Config { - absPath, _ := ExpandHomeDir(filePath) - - cfg, err := config.ParseYamlFile(absPath) - if err != nil { - fmt.Println("\n\n\033[1m ERROR:\033[0m Could not load '\033[0;33mconfig.yml\033[0m'.\n Please add a \033[0;33mconfig.yml\033[0m file to your \033[0;33m~/.wtf\033[0m directory.\n See \033[1;34mhttps://github.com/senorprogrammer/wtf\033[0m for details.\n") - fmt.Printf(" %s\n", err.Error()) - os.Exit(1) - } - - return cfg -} - -func ReadConfigFile(fileName string) (string, error) { - configDir, err := ConfigDir() - if err != nil { - return "", err - } - - filePath := fmt.Sprintf("%s/%s", configDir, fileName) - - fileData, err := ReadFileBytes(filePath) - if err != nil { - return "", err - } - - return string(fileData), nil -} - -// WriteConfigFile creates a simple config file in the config directory if -// one does not already exist -func WriteConfigFile() { - filePath, err := CreateFile("config.yml") - if err != nil { - panic(err) - } - - // If the file is empty, write to it - file, err := os.Stat(filePath) - - if file.Size() == 0 { - err = ioutil.WriteFile(filePath, []byte(simpleConfig), 0644) - if err != nil { - panic(err) - } - } -} - -const simpleConfig = `wtf: - colors: - border: - focusable: darkslateblue - focused: orange - normal: gray - grid: - columns: [40, 40] - rows: [13, 13, 4] - refreshInterval: 1 - mods: - clocks: - colors: - rows: - even: "lightblue" - odd: "white" - enabled: true - locations: - Avignon: "Europe/Paris" - Barcelona: "Europe/Madrid" - Dubai: "Asia/Dubai" - Vancouver: "America/Vancouver" - Toronto: "America/Toronto" - position: - top: 0 - left: 0 - height: 1 - width: 1 - refreshInterval: 15 - sort: "alphabetical" - security: - enabled: true - position: - top: 1 - left: 0 - height: 1 - width: 1 - refreshInterval: 3600 - status: - enabled: true - position: - top: 2 - left: 0 - height: 1 - width: 2 - refreshInterval: 1 - system: - enabled: true - position: - top: 0 - left: 1 - height: 1 - width: 1 - refreshInterval: 3600 - textfile: - enabled: true - filePath: "~/.wtf/config.yml" - position: - top: 1 - left: 1 - height: 1 - width: 1 - refreshInterval: 30 -`