38 lines
861 B
Bash
38 lines
861 B
Bash
# Lazy-load ros2 stuff
|
|
|
|
(( ${+ZSH_ROS2_ROOT} )) || return
|
|
|
|
# Define as a function so it can be overridden for speed
|
|
function zsh-load-ros2() {
|
|
source "${ZSH_ROS2_ROOT}/setup.zsh"
|
|
}
|
|
|
|
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
|