package config // config files are always human readable (foo.text) // cache files are always raw data (foo.pb) import ( "os" "path/filepath" ) // ~/.config/appname/protoname.text func makeConfigFilename(appname string, protoname string) string { var err error configDir, err := os.UserConfigDir() if err != nil { // todo: get something better than /tmp/ if anyone cares return filepath.Join("/tmp", appname, protoname+".text") } return filepath.Join(configDir, appname, protoname+".text") } // ~/.cache/appname/protoname.pb func makeCacheFilename(appname string, protoname string) string { var err error cacheDir, err := os.UserCacheDir() if err != nil { // todo: get something better than /tmp/ if anyone cares return filepath.Join("/tmp", appname, protoname+".pb") } return filepath.Join(cacheDir, appname, protoname+".pb") }