Main entry point.
()
| 489 | self.logger.info("Monitoring stopped by user") |
| 490 | |
| 491 | def main(): |
| 492 | """Main entry point.""" |
| 493 | parser = argparse.ArgumentParser(description='RAG System Unified Launcher') |
| 494 | parser.add_argument('--mode', choices=['dev', 'prod'], default='dev', |
| 495 | help='Run mode (default: dev)') |
| 496 | parser.add_argument('--logs-only', action='store_true', |
| 497 | help='Only show aggregated logs from running services') |
| 498 | parser.add_argument('--no-frontend', action='store_true', |
| 499 | help='Skip frontend startup') |
| 500 | parser.add_argument('--health', action='store_true', |
| 501 | help='Check health of running services') |
| 502 | parser.add_argument('--stop', action='store_true', |
| 503 | help='Stop all running services') |
| 504 | |
| 505 | args = parser.parse_args() |
| 506 | |
| 507 | # Create service manager |
| 508 | manager = ServiceManager(mode=args.mode) |
| 509 | |
| 510 | try: |
| 511 | if args.health: |
| 512 | # Health check mode |
| 513 | manager._print_status_summary() |
| 514 | return |
| 515 | |
| 516 | if args.stop: |
| 517 | # Stop mode - kill any running processes |
| 518 | manager.logger.info("🛑 Stopping all RAG system processes...") |
| 519 | # Implementation for stopping would go here |
| 520 | return |
| 521 | |
| 522 | if args.logs_only: |
| 523 | # Logs only mode - just tail existing logs |
| 524 | manager.logger.info("📋 Showing aggregated logs... (Press Ctrl+C to stop)") |
| 525 | manager.monitor() |
| 526 | return |
| 527 | |
| 528 | # Normal startup mode |
| 529 | if manager.start_all(skip_frontend=args.no_frontend): |
| 530 | manager.monitor() |
| 531 | else: |
| 532 | manager.logger.error("❌ System startup failed") |
| 533 | sys.exit(1) |
| 534 | |
| 535 | except KeyboardInterrupt: |
| 536 | manager.logger.info("Received interrupt signal") |
| 537 | finally: |
| 538 | manager.shutdown() |
| 539 | |
| 540 | if __name__ == "__main__": |
| 541 | main() |
no test coverage detected