# Lazy-load ros2 stuff (( ${+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} source \${(q)ZSH_ROS2_ROOT}/setup.zsh || { echo 'Failed to load ros2 libraries!'; return } (( \${#} == 0 )) && ${(q)exec} || ${(q)exec} \"\${@}\" }" done unset exec def file defined undef_args