63 lines
1.2 KiB
Go
63 lines
1.2 KiB
Go
package config
|
|
|
|
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
|
|
|
|
ServerPort string
|
|
ServerMode bool
|
|
|
|
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", 4161)
|
|
|
|
ServerPort = getEnv("SERVER_PORT", "3000")
|
|
ServerMode = getEnv("SERVER", "false") == "true"
|
|
|
|
ClickhouseHost = getEnv("CLICKHOUSE_HOST", "127.0.0.1")
|
|
ClickhouseDatabase = getEnv("CLICKHOUSE_DATABASE", "zkill")
|
|
ClickhouseUsername = getEnv("CLICKHOUSE_USERNAME", "default")
|
|
ClickhousePassword = getEnv("CLICKHOUSE_PASSWORD", "")
|
|
|
|
return nil
|
|
}
|