#!/usr/bin/env python3
"""Launch stats_server and contents_server as child processes."""
import subprocess, sys, signal
from pathlib import Path

d = Path(__file__).parent

# Forward any CLI args (e.g. --config) to contents_server
extra_args = sys.argv[1:]

procs = [
    subprocess.Popen([sys.executable, d / "stats_server.py"]),
    subprocess.Popen([sys.executable, d / "contents_server.py"] + extra_args),
]
signal.signal(signal.SIGINT, lambda *_: [p.terminate() for p in procs])
signal.signal(signal.SIGTERM, lambda *_: [p.terminate() for p in procs])
print(f"Running stats_server (PID {procs[0].pid}) + contents_server (PID {procs[1].pid})")
for p in procs:
    p.wait()
