#!/usr/bin/env python3 """ 机器狗控制系统启动脚本 提供多种启动方式的便捷入口 """ import sys import os import argparse # 添加当前目录到Python路径 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from main import main, legacy_main, run_complete_task_mode, run_test_mode, run_interactive_test_mode def print_usage(): """打印使用说明""" print("="*70) print(" 机器狗控制系统启动脚本") print("="*70) print("使用方法:") print(" python start.py [选项]") print() print("选项:") print(" -h, --help 显示此帮助信息") print(" -m, --mode MODE 直接启动指定模式") print(" MODE可以是: task, test, interactive") print(" -l, --legacy 使用原始模式(直接运行完整任务)") print(" -i, --interactive 启动交互式菜单(默认)") print() print("模式说明:") print(" task - 完整任务模式:运行完整的任务1-5流程") print(" test - 测试模式:进入子运动函数测试菜单") print(" interactive - 交互式测试:快速命令行测试界面") print(" legacy - 原始模式:直接运行完整任务(兼容旧版)") print() print("示例:") print(" python start.py # 启动交互式菜单") print(" python start.py -m task # 直接运行完整任务") print(" python start.py -m test # 直接进入测试模式") print(" python start.py -m interactive # 直接进入交互式测试") print(" python start.py -l # 使用原始模式") print("="*70) def main_cli(): """命令行主函数""" parser = argparse.ArgumentParser( description="机器狗控制系统启动脚本", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=""" 示例: python start.py # 启动交互式菜单 python start.py -m task # 直接运行完整任务 python start.py -m test # 直接进入测试模式 python start.py -m interactive # 直接进入交互式测试 python start.py -l # 使用原始模式 """ ) parser.add_argument( '-m', '--mode', choices=['task', 'test', 'interactive'], help='直接启动指定模式' ) parser.add_argument( '-l', '--legacy', action='store_true', help='使用原始模式(直接运行完整任务)' ) parser.add_argument( '-i', '--interactive', action='store_true', help='启动交互式菜单(默认)' ) args = parser.parse_args() try: if args.legacy: print("🔄 启动原始模式...") legacy_main() elif args.mode == 'task': print("🚀 启动完整任务模式...") run_complete_task_mode() elif args.mode == 'test': print("🔧 启动测试模式...") run_test_mode() elif args.mode == 'interactive': print("⚡ 启动交互式测试模式...") run_interactive_test_mode() else: # 默认启动交互式菜单 print("🎯 启动交互式菜单...") main() except KeyboardInterrupt: print("\n👋 程序被用户中断,再见!") except Exception as e: print(f"❌ 发生错误: {e}") sys.exit(1) if __name__ == "__main__": main_cli()