aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.net>2025-08-07 12:00:20 +0100
committerLeonardo Bishop <me@leonardobishop.net>2025-08-07 15:06:27 +0100
commit0d47544d12656be9eb853f8323f0da19eec2316c (patch)
treeca83669434a6ab6c0baf8b48bd22971b1d237dc7
parent1c542bd35b0e5f6ca4e4b92cc849bd652b901f8d (diff)
Update directories fig searches
-rw-r--r--walrss/internal/state/state.go23
1 files 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
}