Phase8
This commit is contained in:
37
apps/edge-gateway/internal/config/config.go
Normal file
37
apps/edge-gateway/internal/config/config.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
ListenAddr string
|
||||
APIURL string
|
||||
EdgeKey string
|
||||
PlayDomain string
|
||||
StartWait time.Duration
|
||||
PollInterval time.Duration
|
||||
}
|
||||
|
||||
func Load() Config {
|
||||
startWaitSec, _ := strconv.Atoi(envOr("EDGE_START_WAIT_SECONDS", "180"))
|
||||
pollMs, _ := strconv.Atoi(envOr("EDGE_POLL_INTERVAL_MS", "2000"))
|
||||
|
||||
return Config{
|
||||
ListenAddr: envOr("EDGE_LISTEN_ADDR", ":25565"),
|
||||
APIURL: envOr("API_URL", "http://localhost:3001"),
|
||||
EdgeKey: envOr("EDGE_INTERNAL_API_KEY", "local-dev-edge-key-change-me-32chars"),
|
||||
PlayDomain: envOr("GAME_BASE_DOMAIN", "play.example.net"),
|
||||
StartWait: time.Duration(startWaitSec) * time.Second,
|
||||
PollInterval: time.Duration(pollMs) * time.Millisecond,
|
||||
}
|
||||
}
|
||||
|
||||
func envOr(key, fallback string) string {
|
||||
if value := os.Getenv(key); value != "" {
|
||||
return value
|
||||
}
|
||||
return fallback
|
||||
}
|
||||
Reference in New Issue
Block a user