refactor: add PATH search logic to cargo-xwin wrapper script to find real binary outside script directory
Replace direct cargo xwin execution with PATH traversal to locate actual cargo-xwin binary outside script's own directory. Add error handling with installation instructions when binary not found. Skip script's own directory and empty PATH entries during search.
This commit is contained in:
@@ -9,4 +9,27 @@ if ! command -v clang-cl >/dev/null 2>&1; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec cargo xwin "$@"
|
SELF_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
REAL_CARGO_XWIN=""
|
||||||
|
|
||||||
|
IFS=':'
|
||||||
|
for dir in ${PATH}; do
|
||||||
|
if [ -z "${dir}" ] || [ "${dir}" = "${SELF_DIR}" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -x "${dir}/cargo-xwin" ]; then
|
||||||
|
REAL_CARGO_XWIN="${dir}/cargo-xwin"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
unset IFS
|
||||||
|
|
||||||
|
if [ -z "${REAL_CARGO_XWIN}" ]; then
|
||||||
|
echo "cargo-xwin binary was not found outside ${SELF_DIR}."
|
||||||
|
echo "Install it with:"
|
||||||
|
echo " cargo install --locked cargo-xwin"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec "${REAL_CARGO_XWIN}" "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user