Add env var support

This commit is contained in:
Owen Schwartz
2024-12-26 21:00:35 -05:00
parent 2d8725bf81
commit 72d145aaa5

25
main.go
View File

@@ -222,6 +222,13 @@ func resolveDomain(domain string) (string, error) {
return ipAddr, nil
}
func getEnvWithDefault(key, defaultValue string) string {
if value := os.Getenv(key); value != "" {
return value
}
return defaultValue
}
func main() {
var (
endpoint string
@@ -233,14 +240,20 @@ func main() {
logLevel string
)
flag.StringVar(&endpoint, "endpoint", "", "Endpoint of your pangolin server")
flag.StringVar(&id, "id", "", "Newt ID")
flag.StringVar(&secret, "secret", "", "Newt secret")
flag.StringVar(&dns, "dns", "8.8.8.8", "DNS server to use")
flag.StringVar(&logLevel, "log-level", "INFO", "Log level (DEBUG, INFO, WARN, ERROR, FATAL)")
// Define CLI flags with default values from environment variables
flag.StringVar(&endpoint, "endpoint", os.Getenv("PANGOLIN_ENDPOINT"), "Endpoint of your pangolin server")
flag.StringVar(&id, "id", os.Getenv("NEWT_ID"), "Newt ID")
flag.StringVar(&secret, "secret", os.Getenv("NEWT_SECRET"), "Newt secret")
flag.StringVar(&dns, "dns", getEnvWithDefault("DEFAULT_DNS", "8.8.8.8"), "DNS server to use")
flag.StringVar(&logLevel, "log-level", getEnvWithDefault("LOG_LEVEL", "INFO"), "Log level (DEBUG, INFO, WARN, ERROR, FATAL)")
flag.Parse()
// Validate required fields
if endpoint == "" || id == "" || secret == "" {
logger.Fatal("endpoint, id, and secret are required either via CLI flags or environment variables")
}
logger.Init()
loggerLevel := parseLogLevel(logLevel)
logger.GetLogger().SetLevel(parseLogLevel(logLevel))