From 0d47544d12656be9eb853f8323f0da19eec2316c Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Thu, 7 Aug 2025 12:00:20 +0100 Subject: [PATCH 1/2] Update directories fig searches --- walrss/internal/state/state.go | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/walrss/internal/state/state.go b/walrss/internal/state/state.go index 522e1bf..1fe33ee 100644 --- a/walrss/internal/state/state.go +++ b/walrss/internal/state/state.go @@ -3,12 +3,13 @@ package state import ( "errors" "fmt" + "os" + "strings" + "github.com/kkyr/fig" "github.com/rs/zerolog" "github.com/rs/zerolog/log" "github.com/uptrace/bun" - "os" - "strings" ) type State struct { @@ -48,23 +49,19 @@ type Config struct { Debug bool `fig:"debug"` } +const walrssConfigDirEnv = "WALRSS_CONFIG_DIR" const configFilename = "config.yaml" func LoadConfig() (*Config, error) { - // If the file doesn't exist, Fig will throw a hissy fit, so we should create a blank one if it doesn't exist - if _, err := os.Stat(configFilename); err != nil { - if errors.Is(err, os.ErrNotExist) { - // If the file doesn't have contents, Fig will throw an EOF, despite `touch config.yaml` working fine. idk lol - if err := os.WriteFile(configFilename, []byte("{}"), 0777); err != nil { - return nil, err - } - } else { - return nil, err - } + var configDirs []string + + if config := os.Getenv(walrssConfigDirEnv); config != "" { + configDirs = append(configDirs, config) } + configDirs = append(configDirs, ".") cfg := new(Config) - if err := fig.Load(cfg); err != nil { + if err := fig.Load(cfg, fig.Dirs(configDirs...), fig.File(configFilename)); err != nil { return nil, err } -- 2.50.1