#!/usr/bin/env python3 """Tiny HTTP server that triggers a birdframe refresh on demand.""" import http.server import subprocess import json PORT = 8080 class Handler(http.server.BaseHTTPRequestHandler): def do_POST(self): if self.path == "/refresh": subprocess.Popen(["systemctl", "start", "birdframe.service"]) self.send_response(200) self.send_header("Content-Type", "application/json") self.send_header("Access-Control-Allow-Origin", "*") self.end_headers() self.wfile.write(json.dumps({"status": "triggered"}).encode()) else: self.send_response(404) self.end_headers() def do_OPTIONS(self): self.send_response(204) self.send_header("Access-Control-Allow-Origin", "*") self.send_header("Access-Control-Allow-Methods", "POST, OPTIONS") self.send_header("Access-Control-Allow-Headers", "Content-Type") self.end_headers() def log_message(self, fmt, *args): pass if __name__ == "__main__": server = http.server.HTTPServer(("0.0.0.0", PORT), Handler) print(f"frame-trigger listening on :{PORT}") server.serve_forever()