mirror of
https://github.com/Jguer/yay
synced 2024-10-04 15:19:08 +00:00
expande tilde for some fields. Fixes #1774
This commit is contained in:
parent
2f1ebb9fde
commit
9356481d1c
|
@ -115,21 +115,21 @@ func (c *Configuration) Save(configPath string) error {
|
|||
func (c *Configuration) expandEnv() {
|
||||
c.AURURL = os.ExpandEnv(c.AURURL)
|
||||
c.AURRPCURL = os.ExpandEnv(c.AURRPCURL)
|
||||
c.BuildDir = os.ExpandEnv(c.BuildDir)
|
||||
c.Editor = os.ExpandEnv(c.Editor)
|
||||
c.BuildDir = expandEnvOrHome(c.BuildDir)
|
||||
c.Editor = expandEnvOrHome(c.Editor)
|
||||
c.EditorFlags = os.ExpandEnv(c.EditorFlags)
|
||||
c.MakepkgBin = os.ExpandEnv(c.MakepkgBin)
|
||||
c.MakepkgConf = os.ExpandEnv(c.MakepkgConf)
|
||||
c.PacmanBin = os.ExpandEnv(c.PacmanBin)
|
||||
c.PacmanConf = os.ExpandEnv(c.PacmanConf)
|
||||
c.MakepkgBin = expandEnvOrHome(c.MakepkgBin)
|
||||
c.MakepkgConf = expandEnvOrHome(c.MakepkgConf)
|
||||
c.PacmanBin = expandEnvOrHome(c.PacmanBin)
|
||||
c.PacmanConf = expandEnvOrHome(c.PacmanConf)
|
||||
c.GpgFlags = os.ExpandEnv(c.GpgFlags)
|
||||
c.MFlags = os.ExpandEnv(c.MFlags)
|
||||
c.GitFlags = os.ExpandEnv(c.GitFlags)
|
||||
c.SortBy = os.ExpandEnv(c.SortBy)
|
||||
c.SearchBy = os.ExpandEnv(c.SearchBy)
|
||||
c.GitBin = os.ExpandEnv(c.GitBin)
|
||||
c.GpgBin = os.ExpandEnv(c.GpgBin)
|
||||
c.SudoBin = os.ExpandEnv(c.SudoBin)
|
||||
c.GitBin = expandEnvOrHome(c.GitBin)
|
||||
c.GpgBin = expandEnvOrHome(c.GpgBin)
|
||||
c.SudoBin = expandEnvOrHome(c.SudoBin)
|
||||
c.SudoFlags = os.ExpandEnv(c.SudoFlags)
|
||||
c.ReDownload = os.ExpandEnv(c.ReDownload)
|
||||
c.ReBuild = os.ExpandEnv(c.ReBuild)
|
||||
|
@ -140,6 +140,15 @@ func (c *Configuration) expandEnv() {
|
|||
c.RemoveMake = os.ExpandEnv(c.RemoveMake)
|
||||
}
|
||||
|
||||
func expandEnvOrHome(path string) string {
|
||||
path = os.ExpandEnv(path)
|
||||
if strings.HasPrefix(path, "~/") {
|
||||
path = filepath.Join(os.Getenv("HOME"), path[2:])
|
||||
}
|
||||
|
||||
return path
|
||||
}
|
||||
|
||||
func (c *Configuration) String() string {
|
||||
var buf bytes.Buffer
|
||||
enc := json.NewEncoder(&buf)
|
||||
|
|
|
@ -75,6 +75,39 @@ func TestNewConfigAURDEST(t *testing.T) {
|
|||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
// Test tilde expansion in AURDEST
|
||||
func TestNewConfigAURDESTTildeExpansion(t *testing.T) {
|
||||
configDir := t.TempDir()
|
||||
err := os.MkdirAll(filepath.Join(configDir, "yay"), 0o755)
|
||||
assert.NoError(t, err)
|
||||
|
||||
t.Setenv("XDG_CONFIG_HOME", configDir)
|
||||
|
||||
homeDir := t.TempDir()
|
||||
cacheDir := t.TempDir()
|
||||
|
||||
config := map[string]string{"BuildDir": filepath.Join(cacheDir, "test-other-dir")}
|
||||
t.Setenv("AURDEST", "~/test-build-dir")
|
||||
t.Setenv("HOME", homeDir)
|
||||
|
||||
f, err := os.Create(filepath.Join(configDir, "yay", "config.json"))
|
||||
assert.NoError(t, err)
|
||||
|
||||
defer f.Close()
|
||||
|
||||
configJSON, _ := json.Marshal(config)
|
||||
_, err = f.WriteString(string(configJSON))
|
||||
assert.NoError(t, err)
|
||||
|
||||
newConfig, err := NewConfig("v1.0.0")
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, filepath.Join(homeDir, "test-build-dir"), newConfig.BuildDir)
|
||||
|
||||
_, err = os.Stat(filepath.Join(homeDir, "test-build-dir"))
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
// GIVEN default config
|
||||
// WHEN setPrivilegeElevator gets called
|
||||
// THEN sudobin should stay as "sudo" (given sudo exists)
|
||||
|
|
Loading…
Reference in a new issue