diff --git a/src/db.go b/src/db.go index d6d5cf5..b1fc0fb 100644 --- a/src/db.go +++ b/src/db.go @@ -11,12 +11,24 @@ var FILE_STATE_DB string var MISTAKE_DB string func init() { - if home, ok := os.LookupEnv("HOME"); !ok { + var ok bool + var data string + var home string + + if home, ok = os.LookupEnv("HOME"); !ok { die("Could not resolve home directory.") - } else { - FILE_STATE_DB = filepath.Join(home, ".local/", "share/", "tt/", ".db") - MISTAKE_DB = filepath.Join(home, ".local/", "share/", "tt/", ".errors") } + + if data, ok = os.LookupEnv("XDG_DATA_HOME"); ok { + data = filepath.Join(data, "/tt") + } else { + data = filepath.Join(home, "/.local/share/tt") + } + + os.MkdirAll(data, 0700) + + FILE_STATE_DB = filepath.Join(data, ".db") + MISTAKE_DB = filepath.Join(data, ".errors") } func readValue(path string, o interface{}) error { diff --git a/src/tt.go b/src/tt.go index 17b352c..aba3ada 100644 --- a/src/tt.go +++ b/src/tt.go @@ -291,16 +291,6 @@ func main() { flag.Usage = func() { os.Stdout.Write([]byte(usage)) } flag.Parse() - var ok bool - var dir string - - if dir, ok = os.LookupEnv("HOME"); !ok { - die("Could not find home directory.") - } - - dir = filepath.Join(dir, ".local", "share", "tt") - os.Mkdir(dir, 0700) - if listFlag != "" { prefix := listFlag + "/" for path, _ := range packedFiles {