#!/usr/bin/env bash # Download AGP + AndroidX runtime deps into offline-maven for isolated LAN builds. # Run once on a machine with internet, then commit tauri_app/docker/offline-maven/. set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" AGP_VERSION="${ANDROID_GRADLE_PLUGIN_VERSION:-8.11.0}" RESOLVER="${ROOT}/docker/agp-resolver" OFFLINE="${ROOT}/docker/offline-maven" if [ ! -x "${RESOLVER}/gradlew" ]; then echo "Gradle wrapper not found in ${RESOLVER}" >&2 exit 1 fi echo "==> Resolving AGP ${AGP_VERSION} + AndroidX deps into ${OFFLINE}" cd "${RESOLVER}" chmod +x ./gradlew sed -i 's/\r$//' ./gradlew 2>/dev/null || true ./gradlew exportAllOfflineMaven --no-daemon -PagpVersion="${AGP_VERSION}" required=( "${OFFLINE}/com/android/tools/build/builder/${AGP_VERSION}/builder-${AGP_VERSION}.pom" "${OFFLINE}/androidx/webkit/webkit/1.14.0/webkit-1.14.0.pom" "${OFFLINE}/androidx/appcompat/appcompat/1.7.1/appcompat-1.7.1.pom" "${OFFLINE}/androidx/browser/browser/1.8.0/browser-1.8.0.pom" ) for file in "${required[@]}"; do if [ ! -f "${file}" ]; then echo "Missing required offline artifact: ${file}" >&2 exit 1 fi done TOTAL_SIZE="$(du -sh "${OFFLINE}" | awk '{print $1}')" ARTIFACTS="$(find "${OFFLINE}" \( -name '*.jar' -o -name '*.aar' \) | wc -l | tr -d ' ')" echo "==> Offline Maven cache ready: ${ARTIFACTS} jar/aar, total ${TOTAL_SIZE}" echo "==> Commit tauri_app/docker/offline-maven/ and push to the server"