pomerium/internal/fileutil/directories.go
2025-02-26 10:31:12 -07:00

36 lines
942 B
Go

package fileutil
import (
"os"
"path/filepath"
"github.com/rs/zerolog/log"
)
// CacheDir returns $XDG_CACHE_HOME/pomerium, or $HOME/.cache/pomerium, or /tmp/pomerium/cache
func CacheDir() string {
dir, err := os.UserCacheDir()
if err == nil {
dir = filepath.Join(dir, "pomerium")
} else {
dir = filepath.Join(os.TempDir(), "pomerium", "cache")
log.Debug().Msgf("user cache directory not set, defaulting to %s", dir)
}
return dir
}
// DataDir returns $XDG_DATA_HOME/pomerium, or $HOME/.local/share/pomerium, or /tmp/pomerium/data
func DataDir() string {
dir := os.Getenv("XDG_DATA_HOME")
if dir != "" {
dir = filepath.Join(dir, "pomerium")
} else {
if home, err := os.UserHomeDir(); err == nil {
dir = filepath.Join(home, ".local", "share", "pomerium")
} else {
dir = filepath.Join(os.TempDir(), "pomerium", "data")
}
log.Debug().Msgf("user data directory not set, defaulting to %s", dir)
}
return dir
}