Author: Adam <git@apiote.xyz>
use xdg directories
gonk.go | 36 +++++++++++++++++++++++++++++++++---
diff --git a/gonk.go b/gonk.go index 5ca078d3ae5ada0f41265fe6d08122abc4ed430c..501d7f8f0b6fc6c463b1d50aeb4f04e30619c7f1 100644 --- a/gonk.go +++ b/gonk.go @@ -44,6 +44,30 @@ type HonkSet struct { Honks []Honk } +func dataHome() string { + xdgDataHome, _ := os.LookupEnv("XDG_DATA_HOME") + if xdgDataHome == "" { + user, err := os.UserHomeDir() + if err != nil { + panic(err) + } + xdgDataHome = user + "/.local/share" + } + return xdgDataHome + "/gonk" +} + +func configHome() string { + xdgConfigHome, _ := os.LookupEnv("XDG_CONFIG_HOME") + if xdgConfigHome == "" { + user, err := os.UserHomeDir() + if err != nil { + panic(err) + } + xdgConfigHome = user + "/.config" + } + return xdgConfigHome + "/gonk" +} + func setUpColour(colourful bool) Colour { if colourful { return Colour{ @@ -222,7 +246,13 @@ colourful = false } colour := setUpColour(colourful) - data, err := ioutil.ReadFile("account") + err := os.MkdirAll(dataHome(), 0755) + if err != nil { + fmt.Println("while making home directory: %v", err) + os.Exit(1) + } + + data, err := ioutil.ReadFile(configHome() + "/account") for _, line := range strings.Split(string(data), "\n") { if !strings.Contains(line, "=") { continue @@ -245,7 +275,7 @@ os.Exit(1) } token := gettoken(server, username, password) - data, err = ioutil.ReadFile("after") + data, err = ioutil.ReadFile(dataHome() + "/after") if err != nil { log.Printf("[WARN] File reading error: %s\nShowing all honks", err) } @@ -258,6 +288,6 @@ after, broken = showHonks(honks, after, colour) if !broken { fmt.Println(colour.Cyan + "## No more honks" + colour.Reset) } - ioutil.WriteFile("after", []byte(fmt.Sprintf("%d", after)), 0644) + ioutil.WriteFile(dataHome()+"/after", []byte(fmt.Sprintf("%d", after)), 0644) logout(server, token) }