weiro/config/config.go

33 lines
661 B
Go
Raw Permalink Normal View History

2026-02-25 11:04:47 +00:00
package config
import (
"fmt"
"path/filepath"
2026-02-25 11:04:47 +00:00
"github.com/Netflix/go-env"
)
type Config struct {
DataDir string `env:"DATA_DIR"`
2026-03-02 09:48:41 +00:00
ScratchDir string `env:"SCRATCH_DIR"`
2026-02-25 11:04:47 +00:00
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")
}