73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
func getEnv(key, defaultValue string) string {
|
|
value := os.Getenv(key)
|
|
if value == "" {
|
|
return defaultValue
|
|
}
|
|
return value
|
|
}
|
|
|
|
func getEnvInt(key string, defaultValue int) int {
|
|
value := os.Getenv(key)
|
|
if value == "" {
|
|
return defaultValue
|
|
}
|
|
parsed, err := strconv.Atoi(value)
|
|
if err != nil {
|
|
return defaultValue
|
|
}
|
|
return parsed
|
|
}
|
|
|
|
var (
|
|
nsqHost string
|
|
nsqPort int
|
|
nsqLookupHost string
|
|
nsqLookupPort int
|
|
|
|
stage1Workers int
|
|
stage2Workers int
|
|
stage3Workers int
|
|
|
|
serverPort string
|
|
serverMode bool
|
|
stage string
|
|
|
|
clickhouseHost string
|
|
clickhouseDatabase string
|
|
clickhouseUsername string
|
|
clickhousePassword string
|
|
)
|
|
|
|
func initConfig() error {
|
|
godotenv.Load()
|
|
|
|
nsqHost = getEnv("NSQ_HOST", "127.0.0.1")
|
|
nsqPort = getEnvInt("NSQ_PORT", 4150)
|
|
nsqLookupHost = getEnv("NSQ_LOOKUP_HOST", "127.0.0.1")
|
|
nsqLookupPort = getEnvInt("NSQ_LOOKUP_PORT", 4160)
|
|
|
|
stage1Workers = getEnvInt("STAGE1_WORKERS", 24)
|
|
stage2Workers = getEnvInt("STAGE2_WORKERS", 48)
|
|
stage3Workers = getEnvInt("STAGE3_WORKERS", 48)
|
|
|
|
serverPort = getEnv("SERVER_PORT", "3000")
|
|
serverMode = getEnv("SERVER", "false") == "true"
|
|
stage = getEnv("STAGE", "")
|
|
|
|
clickhouseHost = getEnv("CLICKHOUSE_HOST", "127.0.0.1")
|
|
clickhouseDatabase = getEnv("CLICKHOUSE_DATABASE", "zkill")
|
|
clickhouseUsername = getEnv("CLICKHOUSE_USERNAME", "default")
|
|
clickhousePassword = getEnv("CLICKHOUSE_PASSWORD", "")
|
|
|
|
return nil
|
|
}
|