Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

複数多種のリポジトリを引っ張らないといけないとき、vcstoolが使えるかもしれない

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-master

vcsのサブコマンド群をつかうと、必要なところに入ってくれます

$ 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