Skip to content

Commit 94bf991

Browse files
Add config directory env override
- Read `NOTTE_CONFIG_DIR` before falling back to the home directory - Add tests for the override and default home-based path
1 parent 32868cc commit 94bf991

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

internal/config/config.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const (
1717
CurrentViewerURLFile = "current_viewer_url"
1818
CurrentAgentFile = "current_agent"
1919
CurrentSessionExpiryFile = "current_session_expiry"
20+
EnvConfigDir = "NOTTE_CONFIG_DIR"
2021
EnvAPIURL = "NOTTE_API_URL"
2122
EnvConsoleURL = "NOTTE_CONSOLE_URL"
2223
EnvSessionID = "NOTTE_SESSION_ID"
@@ -45,6 +46,9 @@ func Dir() (string, error) {
4546
if testConfigDir != "" {
4647
return filepath.Join(testConfigDir, ConfigDirName), nil
4748
}
49+
if envDir := os.Getenv(EnvConfigDir); envDir != "" {
50+
return filepath.Join(envDir, ConfigDirName), nil
51+
}
4852
homeDir, err := os.UserHomeDir()
4953
if err != nil {
5054
return "", err

internal/config/config_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,41 @@ func TestLoadConfig_WithValues(t *testing.T) {
4242
}
4343
}
4444

45+
func TestDir_EnvOverride(t *testing.T) {
46+
customDir := t.TempDir()
47+
t.Setenv("NOTTE_CONFIG_DIR", customDir)
48+
49+
dir, err := Dir()
50+
if err != nil {
51+
t.Fatalf("unexpected error: %v", err)
52+
}
53+
54+
expected := filepath.Join(customDir, ConfigDirName)
55+
if dir != expected {
56+
t.Errorf("expected %q, got %q", expected, dir)
57+
}
58+
}
59+
60+
func TestDir_DefaultUsesHome(t *testing.T) {
61+
// Ensure env var is not set
62+
t.Setenv("NOTTE_CONFIG_DIR", "")
63+
64+
dir, err := Dir()
65+
if err != nil {
66+
t.Fatalf("unexpected error: %v", err)
67+
}
68+
69+
homeDir, err := os.UserHomeDir()
70+
if err != nil {
71+
t.Fatalf("unexpected error getting home dir: %v", err)
72+
}
73+
74+
expected := filepath.Join(homeDir, ConfigDirName)
75+
if dir != expected {
76+
t.Errorf("expected %q, got %q", expected, dir)
77+
}
78+
}
79+
4580
func TestSaveConfig(t *testing.T) {
4681
tmpDir := t.TempDir()
4782
cfgPath := filepath.Join(tmpDir, "config.json")

0 commit comments

Comments
 (0)