diff --git a/config/config.go b/config/config.go index afab0fc..0e9a061 100644 --- a/config/config.go +++ b/config/config.go @@ -6,31 +6,39 @@ type Config struct { } type AppConfig struct { - Mode string - LogLvl string + Mode string + LogLvl string + ChanLen uint } type RabbitMQConfig struct { - Host string - Port uint16 - User string - Pass string - Vhost string + Host string + Port uint16 + User string + Pass string + Vhost string + LoggingEnabled bool + TaskSourceQueue string + TaskResultQueue string } func New() *Config { return &Config{ App: AppConfig{ - Mode: getEnv("APP_MODE", "dev"), - LogLvl: getEnv("APP_LOG_LVL", "debug"), + Mode: getEnv("APP_MODE", "dev"), + LogLvl: getEnv("APP_LOG_LVL", "debug"), + ChanLen: getEnvUint("APP_CHANNEL_LEN", 100), }, Rabbit: RabbitMQConfig{ - Host: getEnv("RABBIT_HOST", "10.0.0.4"), - Port: getEnvPort("RABBIT_PORT", 5672), - User: getEnv("RABBIT_USER", "parser-mandarake-dev"), - Pass: getEnv("RABBIT_PASS", "dev-pass"), - Vhost: getEnv("RABBIT_VHOST", "taskProcessorDevHost"), + Host: getEnv("RABBIT_HOST", "10.0.0.4"), + Port: getEnvPort("RABBIT_PORT", 5672), + User: getEnv("RABBIT_USER", "parser-mandarake-dev"), + Pass: getEnv("RABBIT_PASS", "dev-pass"), + 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"), }, } } diff --git a/config/helper.go b/config/helper.go index 1771dbe..5ff6a49 100644 --- a/config/helper.go +++ b/config/helper.go @@ -50,3 +50,14 @@ func getEnvPort(key string, fallback uint16) uint16 { } 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 +} diff --git a/mandarake.env b/mandarake.env index 20a910d..6684576 100644 --- a/mandarake.env +++ b/mandarake.env @@ -1,8 +1,13 @@ APP_MODE=dev APP_LOG_LVL=debug +APP_CHANNEL_LEN=100 RABBIT_HOST= RABBIT_PORT= RABBIT_USER= RABBIT_PASS= RABBIT_VHOST= +RABBIT_LOGGING_ENABLED=false + +TASK_SOURCE_QUEUE=task-publisher-mandarake +TASK_RESULT_QUEUE=tasks-results