Add a fish version of the Android env helper
Only the env helper needs a per-shell variant, since it has to mutate the calling shell; android-setup.sh is executed rather than sourced and already works from fish. The fish version finds NDK/JDK candidates via `find` rather than globs because fish raises an error on a wildcard matching nothing, and "SDK with no ndk/ directory yet" is a normal state the helper has to report cleanly. Also switch the bash helper's NDK selection to `find | sort -V` so the two agree: glob order is lexicographic, which would rank 9.x above 10.x. Verified both pick the same NDK and JDK on this machine and against a fixture with 9.0.111 / 10.0.222 / 28.2.333 / 30.0.999-beta2 installed.
This commit is contained in:
@@ -21,14 +21,15 @@ _mtgc_android_env() {
|
||||
fi
|
||||
|
||||
# --- NDK: newest *stable* installed (skip beta/rc/canary) ---
|
||||
# `sort -V` so 9.x doesn't outrank 10.x the way plain lexicographic would.
|
||||
local best=""
|
||||
for d in "$sdk"/ndk/*; do
|
||||
[ -d "$d" ] || continue
|
||||
while IFS= read -r d; do
|
||||
[ -n "$d" ] || continue
|
||||
case "$(sed -n 's/^Pkg.Revision *= *//p' "$d/source.properties" 2>/dev/null)" in
|
||||
*beta*|*rc*|*canary*) continue ;;
|
||||
esac
|
||||
best="$d"
|
||||
done
|
||||
done < <(find "$sdk/ndk" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort -V)
|
||||
ndk="$best"
|
||||
if [ -z "$ndk" ]; then
|
||||
echo "android-env: no stable NDK under $sdk/ndk (run ./scripts/android-setup.sh)" >&2
|
||||
|
||||
Reference in New Issue
Block a user