mirror of
https://github.com/pomerium/pomerium.git
synced 2025-06-04 20:03:18 +02:00
fileutil: add directory helpers, atomic file writing (#5477)
This commit is contained in:
parent
b9fd926618
commit
fbd1f34110
7 changed files with 133 additions and 27 deletions
36
internal/fileutil/directories.go
Normal file
36
internal/fileutil/directories.go
Normal file
|
@ -0,0 +1,36 @@
|
|||
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.Error().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.Error().Msgf("user data directory not set, defaulting to %s", dir)
|
||||
}
|
||||
return dir
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue