asdf
1# -*- sh -*-
2
3shim_exec_command() {
4local shim_name
5shim_name=$(basename "$1")
6local shim_args=("${@:2}")
7
8if [ -z "$shim_name" ]; then
9printf "usage: asdf exec <command>\n"
10exit 1
11fi
12
13exec_shim() {
14local plugin_name="$1"
15local version="$2"
16local executable_path="$3"
17
18if [ ! -x "$executable_path" ]; then
19printf "No %s executable found for %s %s\n" "$shim_name" "$plugin_name" "$version" >&2
20exit 2
21fi
22
23asdf_run_hook "pre_${plugin_name}_${shim_name}" "${shim_args[@]}"
24pre_status=$?
25if [ "$pre_status" -ne 0 ]; then
26return "$pre_status"
27fi
28exec "$executable_path" "${shim_args[@]}"
29}
30
31with_shim_executable "$shim_name" exec_shim || exit $?
32}
33
34shim_exec_command "$@"
35