package control import "strings" func RenderPreflightInspectScript() string { return `set -eu if [ -r /etc/os-release ]; then . /etc/os-release fi printf 'OS_ID=%s\n' "${ID:-}" printf 'OS_PRETTY=%s\n' "${PRETTY_NAME:-}" printf 'OS_LIKE=%s\n' "${ID_LIKE:-}" if [ -d /opt/vpnem-node/current ]; then printf 'MANAGED=1\n' else printf 'MANAGED=0\n' fi if command -v docker >/dev/null 2>&1; then printf 'DOCKER=1\n' else printf 'DOCKER=0\n' fi if command -v docker >/dev/null 2>&1 && docker compose version >/dev/null 2>&1; then printf 'COMPOSE=1\n' elif command -v docker-compose >/dev/null 2>&1; then printf 'COMPOSE=1\n' else printf 'COMPOSE=0\n' fi if command -v ss >/dev/null 2>&1; then if ss -lnt 2>/dev/null | awk 'NR>1 {print $4}' | grep -Eq '(^|[:.])443$'; then printf 'TCP_443=1\n' else printf 'TCP_443=0\n' fi if ss -lnu 2>/dev/null | awk 'NR>1 {print $4}' | grep -Eq '(^|[:.])443$'; then printf 'UDP_443=1\n' else printf 'UDP_443=0\n' fi if ss -lnt 2>/dev/null | awk 'NR>1 {print $4}' | grep -Eq '(^|[:.])54101$'; then printf 'TCP_54101=1\n' else printf 'TCP_54101=0\n' fi else printf 'TCP_443=unknown\n' printf 'UDP_443=unknown\n' printf 'TCP_54101=unknown\n' fi ` } func ParsePreflightInspectOutput(stdout string) map[string]string { values := map[string]string{} for _, line := range strings.Split(stdout, "\n") { line = strings.TrimSpace(line) if line == "" { continue } key, value, ok := strings.Cut(line, "=") if !ok { continue } values[strings.TrimSpace(key)] = strings.TrimSpace(value) } return values }