package config import ( "os" "path/filepath" "strings" "gopkg.in/yaml.v3" ) type Config struct { Env string `yaml:"env"` Port string `yaml:"port"` DSN string `yaml:"dsn"` StorageDir string `yaml:"storage_dir"` AuthSecret string `yaml:"auth_secret"` SystemAIKey string `yaml:"system_ai_key"` AIKeyEncryptionSecret string `yaml:"ai_key_encryption_secret"` } func Load() Config { cfg, err := LoadFromDir("etc") if err != nil { panic(err) } return cfg } func LoadFromDir(configDir string) (Config, error) { mode := strings.TrimSpace(os.Getenv("SENLIN_APP_MODE")) if mode == "" { mode = "dev" } path := filepath.Join(configDir, "agent."+strings.ToLower(mode)+".yaml") data, err := os.ReadFile(path) if err != nil { return Config{}, err } var cfg Config if err := yaml.Unmarshal(data, &cfg); err != nil { return Config{}, err } return cfg, nil }