1
0
mirror of https://github.com/packwiz/packwiz.git synced 2025-04-28 00:56:31 +02:00
packwiz/core/storeutil.go

55 lines
1.1 KiB
Go

package core
import (
"os"
"path/filepath"
"runtime"
)
func GetPackwizLocalStore() (string, error) {
if //goland:noinspection GoBoolExpressions
runtime.GOOS == "linux" {
// Prefer $XDG_DATA_HOME over $XDG_CACHE_HOME
dataHome := os.Getenv("XDG_DATA_HOME")
if dataHome != "" {
return filepath.Join(dataHome, "packwiz"), nil
}
}
userConfigDir, err := os.UserConfigDir()
if err != nil {
return "", err
}
return filepath.Join(userConfigDir, "packwiz"), nil
}
func GetPackwizInstallBinPath() (string, error) {
localStore, err := GetPackwizLocalStore()
if err != nil {
return "", err
}
return filepath.Join(localStore, "bin"), nil
}
func GetPackwizInstallBinFile() (string, error) {
binPath, err := GetPackwizInstallBinPath()
if err != nil {
return "", err
}
var exeName string
if //goland:noinspection GoBoolExpressions
runtime.GOOS == "windows" {
exeName = "packwiz.exe"
} else {
exeName = "packwiz"
}
return filepath.Join(binPath, exeName), nil
}
func GetPackwizCache() (string, error) {
localStore, err := GetPackwizLocalStore()
if err != nil {
return "", err
}
return filepath.Join(localStore, "cache"), nil
}