Ensure config dir and keybindings.json file to remove 404 keybindings file not found console error (#513)

* added ensure dir to config dir

* removed extraneous slashes
This commit is contained in:
Cole Lashley
2024-03-27 14:55:03 -07:00
committed by GitHub
parent 28dd9410fe
commit 404f7eaac0
2 changed files with 45 additions and 0 deletions
+5
View File
@@ -962,6 +962,11 @@ func main() {
log.Printf("[error] %v\n", err)
return
}
_, err = scbase.EnsureConfigDir()
if err != nil {
log.Printf("[error] ensuring config directory: %v\n", err)
return
}
err = sstore.TryMigrateUp()
if err != nil {
log.Printf("[error] migrate up: %v\n", err)
+40
View File
@@ -234,6 +234,46 @@ func GetScreensDir() string {
return sdir
}
func EnsureConfigDir() (string, error) {
scHome := GetWaveHomeDir()
configDir := path.Join(scHome, "config")
err := ensureDir(configDir)
if err != nil {
return "", err
}
keybindingsFile := path.Join(configDir, "keybindings.json")
keybindingsFileObj, err := ensureFile(keybindingsFile)
if err != nil {
return "", err
}
if keybindingsFileObj != nil {
keybindingsFileObj.WriteString("[]\n")
keybindingsFileObj.Close()
}
return configDir, nil
}
func ensureFile(fileName string) (*os.File, error) {
info, err := os.Stat(fileName)
var myFile *os.File
if errors.Is(err, fs.ErrNotExist) {
myFile, err = os.Create(fileName)
if err != nil {
return nil, err
}
log.Printf("[wave] created file %q\n", fileName)
info, err = myFile.Stat()
}
if err != nil {
return myFile, err
}
if info.IsDir() {
return myFile, fmt.Errorf("'%s' must be a file", fileName)
}
return myFile, nil
}
func ensureDir(dirName string) error {
info, err := os.Stat(dirName)
if errors.Is(err, fs.ErrNotExist) {