mirror of
https://github.com/asdf-vm/asdf.git
synced 2024-11-15 01:28:17 -07:00
35 lines
751 B
Bash
35 lines
751 B
Bash
# -*- sh -*-
|
|
|
|
shim_exec_command() {
|
|
local shim_name
|
|
shim_name=$(basename "$1")
|
|
local shim_args=("${@:2}")
|
|
|
|
if [ -z "$shim_name" ]; then
|
|
printf "usage: asdf exec <command>\\n"
|
|
exit 1
|
|
fi
|
|
|
|
exec_shim() {
|
|
local plugin_name="$1"
|
|
local version="$2"
|
|
local executable_path="$3"
|
|
|
|
if [ ! -x "$executable_path" ]; then
|
|
printf "No %s executable found for %s %s\\n" "$shim_name" "$plugin_name" "$version" >&2
|
|
exit 2
|
|
fi
|
|
|
|
asdf_run_hook "pre_${plugin_name}_${shim_name}" "${shim_args[@]}"
|
|
pre_status=$?
|
|
if [ "$pre_status" -ne 0 ]; then
|
|
return "$pre_status"
|
|
fi
|
|
exec "$executable_path" "${shim_args[@]}"
|
|
}
|
|
|
|
with_shim_executable "$shim_name" exec_shim || exit $?
|
|
}
|
|
|
|
shim_exec_command "$@"
|