diff --git a/cli/config/file.go b/cli/config/file.go index 59b7b74a862d2..9d8b8b34a03e6 100644 --- a/cli/config/file.go +++ b/cli/config/file.go @@ -125,5 +125,9 @@ func read(path string) ([]byte, error) { } func DefaultDir() string { - return configdir.LocalConfig("coderv2") + configDir := configdir.LocalConfig("coderv2") + if dir := os.Getenv("CLIDOCGEN_CONFIG_DIRECTORY"); dir != "" { + configDir = dir + } + return configDir } diff --git a/codersdk/deployment.go b/codersdk/deployment.go index 8f9537729d013..a0546894b4bf2 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -348,7 +348,9 @@ func DefaultCacheDir() string { // For compatibility with systemd. defaultCacheDir = dir } - + if dir := os.Getenv("CLIDOCGEN_CACHE_DIRECTORY"); dir != "" { + defaultCacheDir = dir + } return filepath.Join(defaultCacheDir, "coder") } diff --git a/scripts/clidocgen/main.go b/scripts/clidocgen/main.go index 098c6147addb6..7d6f6d9c7f7b2 100644 --- a/scripts/clidocgen/main.go +++ b/scripts/clidocgen/main.go @@ -28,7 +28,8 @@ type manifest struct { Routes []route `json:"routes,omitempty"` } -func unsetCoderEnv() { +func prepareEnv() { + // Unset CODER_ environment variables for _, env := range os.Environ() { if strings.HasPrefix(env, "CODER_") { split := strings.SplitN(env, "=", 2) @@ -37,6 +38,16 @@ func unsetCoderEnv() { } } } + + // Override default OS values to ensure the same generated results. + err := os.Setenv("CLIDOCGEN_CACHE_DIRECTORY", "~/.cache") + if err != nil { + panic(err) + } + err = os.Setenv("CLIDOCGEN_CONFIG_DIRECTORY", "~/.config/coderv2") + if err != nil { + panic(err) + } } func deleteEmptyDirs(dir string) error { @@ -63,7 +74,7 @@ func deleteEmptyDirs(dir string) error { } func main() { - unsetCoderEnv() + prepareEnv() workdir, err := os.Getwd() if err != nil {