27 lines
522 B
Go
27 lines
522 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"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"
|
|
}
|