package config import ( "fmt" "path/filepath" "github.com/Netflix/go-env" ) type Config struct { DataDir string `env:"DATA_DIR"` ScratchDir string `env:"SCRATCH_DIR"` SiteDomain string `env:"SITE_DOMAIN"` LoginLocked bool `env:"LOGIN_LOCKED,default=false"` Env string `env:"ENV,default=prod"` } func LoadConfig() (Config, error) { cfg := Config{} if _, err := env.UnmarshalFromEnviron(&cfg); err != nil { return Config{}, fmt.Errorf("failed to load config: %w", err) } return cfg, nil } func (c Config) IsProd() bool { return c.Env != "dev" } func (c Config) DBName() string { return filepath.Join(c.DataDir, "weiro.db") }