1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
// +build linux aix dragonfly freebsd netbsd openbsd solaris
package userdirs
import (
"path/filepath"
"strings"
"github.com/apparentlymart/go-userdirs/xdgbase"
)
func supportedOS() bool {
return true
}
func forApp(name string, vendor string, bundleID string) Dirs {
// We use XDG conventions on Linux and other Unixes without their own special rules
subDir := appDirName(name)
ret := xdgDirs()
for i, dir := range ret.ConfigDirs {
ret.ConfigDirs[i] = filepath.Join(dir, subDir)
}
for i, dir := range ret.DataDirs {
ret.DataDirs[i] = filepath.Join(dir, subDir)
}
ret.CacheDir = filepath.Join(ret.CacheDir, subDir)
return ret
}
func xdgDirs() Dirs {
return Dirs{
ConfigDirs: xdgbase.ConfigDirs(),
DataDirs: xdgbase.DataDirs(),
CacheDir: xdgbase.CacheHome(),
}
}
func appDirName(appName string) string {
return strings.ToLower(strings.ReplaceAll(appName, " ", "-"))
}
|