Files
zkill-susser/config.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
}