2026-02-25 11:04:47 +00:00
|
|
|
package config
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
2026-02-27 23:39:08 +00:00
|
|
|
"path/filepath"
|
2026-02-25 11:04:47 +00:00
|
|
|
|
|
|
|
|
"github.com/Netflix/go-env"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Config struct {
|
|
|
|
|
DataDir string `env:"DATA_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"
|
|
|
|
|
}
|
2026-02-27 23:39:08 +00:00
|
|
|
|
|
|
|
|
func (c Config) DBName() string {
|
|
|
|
|
return filepath.Join(c.DataDir, "weiro.db")
|
|
|
|
|
}
|