package main import ( "fmt" "os" "strconv" "strings" ) const ( defaultAddr = "127.0.0.1:7777" defaultMaxSize = 100 << 20 // 100 MiB tokenHeader = "X-Open-Token" fileNameHeader = "X-Open-Filename" pathHeaderField = "X-Open-Host-Path" ) func envAddr() string { if v := os.Getenv("OPEN_PROXY_ADDR"); v != "" { return v } return defaultAddr } func envToken() (string, error) { if v := os.Getenv("OPEN_PROXY_TOKEN"); v != "" { return v, nil } path := os.Getenv("OPEN_PROXY_TOKEN_FILE") if path == "" { return "", nil } b, err := os.ReadFile(path) if err != nil { return "", fmt.Errorf("read OPEN_PROXY_TOKEN_FILE %q: %w", path, err) } token := strings.TrimRight(string(b), "\r\n") if token == "" { return "", fmt.Errorf("OPEN_PROXY_TOKEN_FILE %q is empty", path) } return token, nil } func envMaxSize() int64 { if v := os.Getenv("OPEN_PROXY_MAXSIZE"); v != "" { if n, err := strconv.ParseInt(v, 10, 64); err == nil && n > 0 { return n } } return defaultMaxSize }