import argparse from cobot import ui # Import each sub-command's run() so we can call them in sequence. # Импортируем run() каждой подкоманды, чтобы вызывать их по порядку. from cobot.commands.doc_setup import run as _doc_setup from cobot.commands.docker_setup import run as _docker_setup from cobot.commands.local_setup import run as _local_setup from cobot.commands.robot_setup import run as _robot_setup def register(subparsers): """Register the "setup" subparser. Регистрирует подпарсер "setup". """ p = subparsers.add_parser("setup", help="First-time project setup") p.set_defaults(func=run) def run(args: argparse.Namespace) -> None: """Run the three-step first-time setup wizard: docs -> robot config -> build env. Запускает трёхшаговый мастер первичной настройки: документация -> конфиг робота -> среда сборки. """ ui.header("Первичная настройка", "3 шага") # Step 1 - documentation server. # Шаг 1 - сервер документации. if ui.confirm("Шаг 1/3 — настроить сервер документации?", default=True): _doc_setup(args) # Step 2 - robot parameters in cobot-setting.yaml. # Шаг 2 - параметры робота в cobot-setting.yaml. if ui.confirm("Шаг 2/3 — настроить параметры робота (cobot-setting.yaml)?", default=True): _robot_setup(args) # Step 3 - build environment: local ROS2 or Docker. # Шаг 3 - среда сборки: локальный ROS2 или Docker. env_choice = ui.select( "Шаг 3/3 — как настроить среду сборки?", [ "local-setup — установить ROS2 Jazzy на эту машину и собрать через colcon", "docker-setup — собрать Docker-образ с предустановленным ROS2 Jazzy", ], "local-setup — установить ROS2 Jazzy на эту машину и собрать через colcon", ) if env_choice is None: return if env_choice.startswith("local"): _local_setup(args) else: _docker_setup(args)