2025-02-10 23:26:27 -08:00
|
|
|
# Lazy-load ros2 stuff
|
|
|
|
|
2025-02-11 03:29:15 -08:00
|
|
|
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}"
|
|
|
|
}
|
|
|
|
|
2025-02-15 22:41:04 -08:00
|
|
|
(( ${+ZSH_ROS2_ROOT} )) || return
|
2025-02-10 23:26:27 -08:00
|
|
|
|
|
|
|
local defined=()
|
|
|
|
|
|
|
|
local file
|
|
|
|
for file in "${ZSH_ROS2_ROOT}/bin/"*; do
|
2025-02-15 22:41:04 -08:00
|
|
|
echo Checked $file
|
2025-02-10 23:26:27 -08:00
|
|
|
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
|
2025-02-15 22:41:04 -08:00
|
|
|
echo Defined $exec
|
2025-02-10 23:26:27 -08:00
|
|
|
eval "
|
|
|
|
function \${(q)exec} {
|
|
|
|
printf 'Setting up ros2 with \"%s\"...\n\n' \\
|
|
|
|
\"\${(q)ZSH_ROS2_ROOT%/}/setup.zsh\"
|
|
|
|
unfunction ${undef_args}
|
2025-02-11 03:29:15 -08:00
|
|
|
__zsh_load_ros2 ||
|
2025-02-10 23:26:27 -08:00
|
|
|
{ echo 'Failed to load ros2 libraries!'; return }
|
|
|
|
(( \${#} == 0 )) && ${(q)exec} || ${(q)exec} \"\${@}\"
|
|
|
|
}"
|
|
|
|
done
|
|
|
|
|
|
|
|
unset exec def file defined undef_args
|