Files
love 260f27728b complete Android build setup and study flow
Add a real Gradle wrapper, local SDK wiring, and the missing Android study screens so the module builds cleanly.
2026-04-09 16:46:25 +02:00

61 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
APP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROPERTIES_FILE="$APP_DIR/gradle/wrapper/gradle-wrapper.properties"
GRADLE_USER_HOME="${GRADLE_USER_HOME:-$HOME/.gradle}"
if [[ ! -f "$PROPERTIES_FILE" ]]; then
echo "Missing $PROPERTIES_FILE" >&2
exit 1
fi
distribution_url=""
while IFS='=' read -r key value; do
case "$key" in
distributionUrl)
distribution_url="${value//\\:/:}"
;;
esac
done < "$PROPERTIES_FILE"
if [[ -z "$distribution_url" ]]; then
echo "Unable to read distributionUrl from $PROPERTIES_FILE" >&2
exit 1
fi
gradle_version="${distribution_url##*/gradle-}"
gradle_version="${gradle_version%-bin.zip}"
gradle_version="${gradle_version%-all.zip}"
dists_dir="$GRADLE_USER_HOME/wrapper/dists/gradle-${gradle_version}-bin"
shopt -s nullglob
for candidate in "$dists_dir"/*/gradle-"$gradle_version"; do
if [[ -x "$candidate/bin/gradle" ]]; then
exec "$candidate/bin/gradle" "$@"
fi
done
download_dir="$dists_dir/manual/gradle-$gradle_version"
if [[ ! -x "$download_dir/bin/gradle" ]]; then
mkdir -p "$dists_dir/manual"
tmp_zip="$(mktemp)"
cleanup() { rm -f "$tmp_zip"; }
trap cleanup EXIT
if command -v curl >/dev/null 2>&1; then
curl -fsSL "$distribution_url" -o "$tmp_zip"
elif command -v wget >/dev/null 2>&1; then
wget -qO "$tmp_zip" "$distribution_url"
else
echo "curl or wget is required to download Gradle" >&2
exit 1
fi
unzip -q "$tmp_zip" -d "$dists_dir/manual"
fi
exec "$download_dir/bin/gradle" "$@"