1#!/usr/bin/env bash
Run Gradle in android/ with the optional -Pwhiskers.* properties taken from the environment.
tools/android-gradle.sh :app:assembleDebug [more gradle arguments]
Optional environment (each unset one is left to Gradle's default; see android/README.md):
WHISKERS_HOST -Pwhiskers.host default service address baked into the APK
WHISKERS_VERSION_NAME -Pwhiskers.versionName e.g. 2026.10.5
WHISKERS_VERSION_CODE -Pwhiskers.versionCode e.g. 2026100501
WHISKERS_APPLICATION_ID -Pwhiskers.applicationId
WHISKERS_ABIS -Pwhiskers.abis e.g. arm64-v8a,x86_64
Required: ANDROID_HOME (and ANDROID_NDK_HOME for the Rust core), JAVA_HOME or java, gradle and cargo-ndk
on PATH. mise.toml provides them; so does nix develop; so can you.
14set -euo pipefail 15cd "$(dirname "$0")/../android" 16for v in ANDROID_HOME ANDROID_NDK_HOME; do 17 [ -n "${!v:-}" ] || { echo "$v is not set: run this through mise (mise run android:debug) or export it" >&2; exit 1; } 18done 19[ -d "$ANDROID_HOME/platforms" ] || { echo "no Android platform in $ANDROID_HOME: run mise run android:sdk" >&2; exit 1; } 20command -v gradle >/dev/null || { echo "gradle is not on PATH (mise install)" >&2; exit 1; } 21args=() 22[ -z "${WHISKERS_HOST:-}" ] || args+=("-Pwhiskers.host=$WHISKERS_HOST") 23[ -z "${WHISKERS_VERSION_NAME:-}" ] || args+=("-Pwhiskers.versionName=$WHISKERS_VERSION_NAME") 24[ -z "${WHISKERS_VERSION_CODE:-}" ] || args+=("-Pwhiskers.versionCode=$WHISKERS_VERSION_CODE") 25[ -z "${WHISKERS_APPLICATION_ID:-}" ] || args+=("-Pwhiskers.applicationId=$WHISKERS_APPLICATION_ID") 26[ -z "${WHISKERS_ABIS:-}" ] || args+=("-Pwhiskers.abis=$WHISKERS_ABIS") 27exec gradle --console=plain "$@" ${args[@]+"${args[@]}"}