Honor env state dir in default UI paths
This commit is contained in:
@@ -309,6 +309,9 @@ func (u *ui) filter() {
|
|||||||
|
|
||||||
func defaultStatePaths(stateDir string) statePaths {
|
func defaultStatePaths(stateDir string) statePaths {
|
||||||
baseDir := strings.TrimSpace(stateDir)
|
baseDir := strings.TrimSpace(stateDir)
|
||||||
|
if baseDir == "" {
|
||||||
|
baseDir = strings.TrimSpace(os.Getenv("KEEPASSGO_STATE_DIR"))
|
||||||
|
}
|
||||||
if baseDir == "" {
|
if baseDir == "" {
|
||||||
configDir, err := os.UserConfigDir()
|
configDir, err := os.UserConfigDir()
|
||||||
if err != nil || strings.TrimSpace(configDir) == "" {
|
if err != nil || strings.TrimSpace(configDir) == "" {
|
||||||
|
|||||||
@@ -1978,6 +1978,20 @@ func TestDefaultStatePathsUsesProvidedStateDir(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDefaultStatePathsUsesEnvironmentStateDirWhenFlagUnset(t *testing.T) {
|
||||||
|
base := filepath.Join(t.TempDir(), "keepassgo-state-env")
|
||||||
|
t.Setenv("KEEPASSGO_STATE_DIR", base)
|
||||||
|
|
||||||
|
paths := defaultStatePaths("")
|
||||||
|
|
||||||
|
if got := paths.DefaultSaveAsPath; got != filepath.Join(base, "vault.kdbx") {
|
||||||
|
t.Fatalf("DefaultSaveAsPath = %q, want %q", got, filepath.Join(base, "vault.kdbx"))
|
||||||
|
}
|
||||||
|
if got := paths.RecentVaultsPath; got != filepath.Join(base, "recent-vaults.json") {
|
||||||
|
t.Fatalf("RecentVaultsPath = %q, want %q", got, filepath.Join(base, "recent-vaults.json"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestResolveFlagOrEnvPrefersFlagThenEnvThenFallback(t *testing.T) {
|
func TestResolveFlagOrEnvPrefersFlagThenEnvThenFallback(t *testing.T) {
|
||||||
t.Setenv("KEEPASSGO_TEST_VALUE", "from-env")
|
t.Setenv("KEEPASSGO_TEST_VALUE", "from-env")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user