From 5d89341955f9db6f5c12ea7bd8c2a70e86f4beaf Mon Sep 17 00:00:00 2001 From: Tobias O Date: Wed, 29 Oct 2025 18:01:21 +1300 Subject: [PATCH] chore: delete obsolete runserver command --- epdb/management/commands/runserver.py | 81 --------------------------- 1 file changed, 81 deletions(-) delete mode 100644 epdb/management/commands/runserver.py diff --git a/epdb/management/commands/runserver.py b/epdb/management/commands/runserver.py deleted file mode 100644 index d761a228..00000000 --- a/epdb/management/commands/runserver.py +++ /dev/null @@ -1,81 +0,0 @@ -""" -Custom runserver command that automatically starts CSS watcher. -Overrides Django's default runserver to include pnpm dev. -""" - -import signal -import subprocess -import sys -from django.conf import settings -from django.contrib.staticfiles.management.commands.runserver import ( - Command as RunserverCommand, -) - - -class Command(RunserverCommand): - help = "Run development server with automatic CSS building" - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.css_process = None - - def handle(self, *args, **options): - """Start CSS watcher before running Django dev server.""" - self.stdout.write(self.style.SUCCESS("Starting CSS watcher (pnpm dev)...")) - - # Start pnpm dev in background - try: - self.css_process = subprocess.Popen( - ["pnpm", "run", "dev"], - cwd=settings.BASE_DIR, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - text=True, - ) - self.stdout.write(self.style.SUCCESS("✓ CSS watcher started\n")) - except FileNotFoundError: - self.stdout.write( - self.style.WARNING( - "Warning: pnpm not found. CSS will not be rebuilt automatically.\n" - 'Install pnpm or run "pnpm run dev" manually in another terminal.\n' - ) - ) - except Exception as e: - self.stdout.write( - self.style.WARNING(f"Warning: Could not start CSS watcher: {e}\n") - ) - - # Register cleanup handler - original_sigint = signal.getsignal(signal.SIGINT) - original_sigterm = signal.getsignal(signal.SIGTERM) - - def cleanup(signum, frame): - self.stdout.write("\nShutting down...") - if self.css_process: - self.css_process.terminate() - try: - self.css_process.wait(timeout=5) - self.stdout.write(self.style.SUCCESS("✓ CSS watcher stopped")) - except subprocess.TimeoutExpired: - self.css_process.kill() - # Call original handler - if signum == signal.SIGINT and callable(original_sigint): - original_sigint(signum, frame) - elif signum == signal.SIGTERM and callable(original_sigterm): - original_sigterm(signum, frame) - sys.exit(0) - - signal.signal(signal.SIGINT, cleanup) - signal.signal(signal.SIGTERM, cleanup) - - # Run Django dev server - try: - super().handle(*args, **options) - finally: - # Cleanup on normal exit - if self.css_process: - self.css_process.terminate() - try: - self.css_process.wait(timeout=5) - except subprocess.TimeoutExpired: - self.css_process.kill()