#!/usr/bin/env python3 """BOOKQUOY dev server — http.server with caching disabled so module edits show up. Also mounts the park_kit sibling repo at /kit/ (textured props + surfaces), same convention as skatemakerpro: override with PARK_KIT=/path/to/park_kit.""" import http.server, mimetypes, os, sys ROOT = os.path.dirname(os.path.abspath(__file__)) KIT = os.environ.get('PARK_KIT', os.path.join(os.path.dirname(ROOT), 'park_kit')) class NoCache(http.server.SimpleHTTPRequestHandler): def end_headers(self): self.send_header('Cache-Control', 'no-store, must-revalidate') super().end_headers() def do_GET(self): if self.path.startswith('/kit/'): rel = os.path.normpath(self.path[5:].split('?')[0]).lstrip('/') f = os.path.join(KIT, rel) if f.startswith(KIT + os.sep) and os.path.isfile(f): ctype = mimetypes.guess_type(f)[0] or 'application/octet-stream' data = open(f, 'rb').read() self.send_response(200) self.send_header('Content-Type', ctype) self.send_header('Content-Length', str(len(data))) self.end_headers() self.wfile.write(data) else: self.send_error(404) return super().do_GET() port = int(sys.argv[1]) if len(sys.argv) > 1 else 8141 http.server.ThreadingHTTPServer(('', port), NoCache).serve_forever()