mirror of
https://github.com/Jguer/yay.git
synced 2024-11-06 09:07:21 +01:00
fix(cache): create build directory if not systemd-run directory. closes #1612
This commit is contained in:
parent
52efaeba52
commit
12a6d4f5c1
@ -17,6 +17,7 @@ import (
|
||||
|
||||
"github.com/Jguer/yay/v11/pkg/settings/exe"
|
||||
"github.com/Jguer/yay/v11/pkg/settings/parser"
|
||||
"github.com/Jguer/yay/v11/pkg/text"
|
||||
"github.com/Jguer/yay/v11/pkg/vcs"
|
||||
)
|
||||
|
||||
@ -216,12 +217,23 @@ func DefaultConfig() *Configuration {
|
||||
func NewConfig(version string) (*Configuration, error) {
|
||||
newConfig := DefaultConfig()
|
||||
|
||||
cacheHome := getCacheHome()
|
||||
cacheHome, errCache := getCacheHome()
|
||||
if errCache != nil {
|
||||
text.Errorln(errCache)
|
||||
}
|
||||
|
||||
newConfig.BuildDir = cacheHome
|
||||
|
||||
configPath := getConfigPath()
|
||||
newConfig.load(configPath)
|
||||
|
||||
if newConfig.BuildDir != systemdCache {
|
||||
errBuildDir := initDir(newConfig.BuildDir)
|
||||
if errBuildDir != nil {
|
||||
return nil, errBuildDir
|
||||
}
|
||||
}
|
||||
|
||||
if aurdest := os.Getenv("AURDEST"); aurdest != "" {
|
||||
newConfig.BuildDir = aurdest
|
||||
}
|
||||
|
@ -5,13 +5,12 @@ import (
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// configFileName holds the name of the config file.
|
||||
const configFileName string = "config.json"
|
||||
|
||||
// vcsFileName holds the name of the vcs file.
|
||||
const vcsFileName string = "vcs.json"
|
||||
|
||||
const completionFileName string = "completion.cache"
|
||||
const (
|
||||
configFileName string = "config.json" // configFileName holds the name of the config file.
|
||||
vcsFileName string = "vcs.json" // vcsFileName holds the name of the vcs file.
|
||||
completionFileName string = "completion.cache"
|
||||
systemdCache string = "/var/cache/yay" // systemd should handle cache creation
|
||||
)
|
||||
|
||||
func getConfigPath() string {
|
||||
if configHome := os.Getenv("XDG_CONFIG_HOME"); configHome != "" {
|
||||
@ -31,28 +30,30 @@ func getConfigPath() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func getCacheHome() string {
|
||||
func getCacheHome() (string, error) {
|
||||
uid := os.Geteuid()
|
||||
|
||||
if cacheHome := os.Getenv("XDG_CACHE_HOME"); cacheHome != "" && uid != 0 {
|
||||
cacheDir := filepath.Join(cacheHome, "yay")
|
||||
if err := initDir(cacheDir); err == nil {
|
||||
return cacheDir
|
||||
return cacheDir, nil
|
||||
}
|
||||
}
|
||||
|
||||
if cacheHome := os.Getenv("HOME"); cacheHome != "" && uid != 0 {
|
||||
cacheDir := filepath.Join(cacheHome, ".cache", "yay")
|
||||
if err := initDir(cacheDir); err == nil {
|
||||
return cacheDir
|
||||
return cacheDir, nil
|
||||
}
|
||||
}
|
||||
|
||||
if uid == 0 && os.Getenv("SUDO_USER") == "" && os.Getenv("DOAS_USER") == "" {
|
||||
return "/var/cache/yay" // Don't create directory if systemd-run takes care of it
|
||||
return systemdCache, nil // Don't create directory if systemd-run takes care of it
|
||||
}
|
||||
|
||||
return os.TempDir()
|
||||
tmpDir := filepath.Join(os.TempDir(), "yay")
|
||||
|
||||
return tmpDir, initDir(tmpDir)
|
||||
}
|
||||
|
||||
func initDir(dir string) error {
|
||||
|
Loading…
Reference in New Issue
Block a user