package config import ( "time" "git.haelnorr.com/h/golib/env" ) type HWSConfig struct { Host string // ENV HWS_HOST: Host to listen on (default: 127.0.0.1) Port uint64 // ENV HWS_PORT: Port to listen on (default: 3000) GZIP bool // ENV HWS_GZIP: Flag for GZIP compression on requests (default: false) ReadHeaderTimeout time.Duration // ENV HWS_READ_HEADER_TIMEOUT: Timeout for reading request headers in seconds (default: 2) WriteTimeout time.Duration // ENV HWS_WRITE_TIMEOUT: Timeout for writing requests in seconds (default: 10) IdleTimeout time.Duration // ENV HWS_IDLE_TIMEOUT: Timeout for idle connections in seconds (default: 120) } func setupHWS() (*HWSConfig, error) { cfg := &HWSConfig{ Host: env.String("HWS_HOST", "127.0.0.1"), Port: env.UInt64("HWS_PORT", 3000), GZIP: env.Bool("HWS_GZIP", false), ReadHeaderTimeout: time.Duration(env.Int("HWS_READ_HEADER_TIMEOUT", 2)) * time.Second, WriteTimeout: time.Duration(env.Int("HWS_WRITE_TIMEOUT", 10)) * time.Second, IdleTimeout: time.Duration(env.Int("HWS_IDLE_TIMEOUT", 120)) * time.Second, } return cfg, nil }