ROSプロジェクトなど、各所に散らばっているリポジトリを一々手で入力してるとミスする可能性が増えてきます。
そんな時、vcstoolが使えるかもしれません
実際のところ
$ pip install -U vcstool
標準入力からいれる
こんなファイルがあったとして
$ echo ros_controls.humble.repos
repositories:
ros-controls/realtime_tools:
type: git
url: https://github.com/ros-controls/realtime_tools.git
version: master
ros-controls/control_msgs:
type: git
url: https://github.com/ros-controls/control_msgs.git
version: humble
ros-controls/ros2_control:
type: git
url: https://github.com/ros-controls/ros2_control.git
version: humble
ros-controls/ros2_controllers:
type: git
url: https://github.com/ros-controls/ros2_controllers.git
version: humble
ros-controls/kinematics_interface:
type: git
url: https://github.com/ros-controls/kinematics_interface.git
version: master
ros-controls/gz_ros2_control:
type: git
url: https://github.com/ros-controls/gz_ros2_control.git
version: humble
ros-controls/gazebo_ros2_control:
type: git
url: https://github.com/ros-controls/gazebo_ros2_control.git
version: humble
ros-controls/ros2_control_demos:
type: git
url: https://github.com/ros-controls/ros2_control_demos.git
version: humble
ros-controls/control_toolbox:
type: git
url: https://github.com/ros-controls/control_toolbox.git
version: ros2-mastervcsのサブコマンド群をつかうと、必要なところに入ってくれます
$ vcs import src < ros_controls.humble.repos
リモートファイルからもイケる
先ほどは標準入力からやりました。
これは、"--input -"が省略されているため、できた挙動です。
という事はYAMLであればローカルファイルや、リモートファイルから導入することも可能という事です。
上の例は、以下のようなコマンドに書き換える事ができます。
$ vcs import --input https://raw.githubusercontent.com/ros-controls/control.ros.org/master/ros_controls.$ROS_DISTRO.repos src