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:
2026-03-18 10:56:58 +01:00
parent 19d89047f0
commit caec578985

View File

@@ -9,4 +9,27 @@ if ! command -v clang-cl >/dev/null 2>&1; then
exit 1
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}" "$@"