zsh-config/lazy-ros2.zsh

47 lines
1.4 KiB
Bash

# 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