#!/usr/bin/env python3 import jack import time import sys import subprocess expected = { "Praise:left", "Praise:right", "Worship:left", "Worship:right", "Instrumental:left", "Instrumental:right", "sanctuary:in_l", "sanctuary:in_r", "prayer:in_l", "prayer:in_r", "Mac:in_l", "Mac:in_r" } client = jack.Client("waiter") timeout = 15 deadline = time.time() + timeout while time.time() < deadline: current = {port.name for port in client.get_ports()} if expected.issubset(current): print("All JACK ports found.") subprocess.run(["systemctl", "--system", "restart", "router.service"]) sys.exit(0) time.sleep(0.5) print("Timeout waiting for JACK ports.") sys.exit(1)