# Lazy-load ros2 stuff function __zsh_load_ros2 { export AMENT_PREFIX_PATH=/opt/ros/humble export CMAKE_PREFIX_PATH=/opt/ros/humble export COLCON_PREFIX_PATH=/opt/ros/humble export ROS_DISTRO=humble export ROS_LOCALHOST_ONLY=0 export ROS_PYTHON_VERSION=3 export ROS_VERSION=2 export LD_LIBRARY_PATH="/opt/ros/humble/opt/rviz_ogre_vendor/lib:/opt/ros/humble/lib:${LD_LIBRARY_PATH}" export PATH="/opt/ros/humble/bin:${PATH}" export PKG_CONFIG_PATH="/opt/ros/humble/lib/pkgconfig:${PKG_CONFIG_PATH}" export PYTHONPATH="/opt/ros/humble/lib/python3.13/dist-packages/:/opt/ros/humble/lib/python3.13/site-packages:${PYTHONPATH}" } # (( ${+ZSH_ROS2_ROOT} )) || return local defined=() local file for file in "${ZSH_ROS2_ROOT}/bin/"*; do local base="${file:t}" hash -- "${base}" 2>/dev/null && continue defined+=("${base}") done local undef_args=() def for def in ${defined}; do undef_args+=("${(q)def}") done local exec for exec in ${defined}; do eval " function \${(q)exec} { printf 'Setting up ros2 with \"%s\"...\n\n' \\ \"\${(q)ZSH_ROS2_ROOT%/}/setup.zsh\" unfunction ${undef_args} __zsh_load_ros2 || { echo 'Failed to load ros2 libraries!'; return } (( \${#} == 0 )) && ${(q)exec} || ${(q)exec} \"\${@}\" }" done unset exec def file defined undef_args