config ext

This commit is contained in:
nquidox 2026-04-03 19:06:06 +03:00
parent 25a422c0e6
commit 991b250118
3 changed files with 38 additions and 14 deletions

View file

@ -6,31 +6,39 @@ type Config struct {
} }
type AppConfig struct { type AppConfig struct {
Mode string Mode string
LogLvl string LogLvl string
ChanLen uint
} }
type RabbitMQConfig struct { type RabbitMQConfig struct {
Host string Host string
Port uint16 Port uint16
User string User string
Pass string Pass string
Vhost string Vhost string
LoggingEnabled bool
TaskSourceQueue string
TaskResultQueue string
} }
func New() *Config { func New() *Config {
return &Config{ return &Config{
App: AppConfig{ App: AppConfig{
Mode: getEnv("APP_MODE", "dev"), Mode: getEnv("APP_MODE", "dev"),
LogLvl: getEnv("APP_LOG_LVL", "debug"), LogLvl: getEnv("APP_LOG_LVL", "debug"),
ChanLen: getEnvUint("APP_CHANNEL_LEN", 100),
}, },
Rabbit: RabbitMQConfig{ Rabbit: RabbitMQConfig{
Host: getEnv("RABBIT_HOST", "10.0.0.4"), Host: getEnv("RABBIT_HOST", "10.0.0.4"),
Port: getEnvPort("RABBIT_PORT", 5672), Port: getEnvPort("RABBIT_PORT", 5672),
User: getEnv("RABBIT_USER", "parser-mandarake-dev"), User: getEnv("RABBIT_USER", "parser-mandarake-dev"),
Pass: getEnv("RABBIT_PASS", "dev-pass"), Pass: getEnv("RABBIT_PASS", "dev-pass"),
Vhost: getEnv("RABBIT_VHOST", "taskProcessorDevHost"), Vhost: getEnv("RABBIT_VHOST", "taskProcessorDevHost"),
LoggingEnabled: getEnvBool("RABBIT_LOGGING_ENABLED", true),
TaskSourceQueue: getEnv("TASK_SOURCE_QUEUE", "task-publisher-mandarake"),
TaskResultQueue: getEnv("TASK_RESULT_QUEUE", "tasks-results"),
}, },
} }
} }

View file

@ -50,3 +50,14 @@ func getEnvPort(key string, fallback uint16) uint16 {
} }
return fallback return fallback
} }
func getEnvBool(key string, fallback bool) bool {
if value, ok := os.LookupEnv(key); ok {
val, err := strconv.ParseBool(value)
if err != nil {
return fallback
}
return val
}
return fallback
}

View file

@ -1,8 +1,13 @@
APP_MODE=dev APP_MODE=dev
APP_LOG_LVL=debug APP_LOG_LVL=debug
APP_CHANNEL_LEN=100
RABBIT_HOST= RABBIT_HOST=
RABBIT_PORT= RABBIT_PORT=
RABBIT_USER= RABBIT_USER=
RABBIT_PASS= RABBIT_PASS=
RABBIT_VHOST= RABBIT_VHOST=
RABBIT_LOGGING_ENABLED=false
TASK_SOURCE_QUEUE=task-publisher-mandarake
TASK_RESULT_QUEUE=tasks-results