whiskers.git / tools / android-gradle.sh
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[@]}"}