104 lines
2.8 KiB
Bash
104 lines
2.8 KiB
Bash
#!/usr/bin/env bash
|
|
# Adds reliable Google Maven mirrors for Android Gradle Plugin resolution.
|
|
set -euo pipefail
|
|
|
|
ANDROID_GEN="${1:-/workspace/tauri_app/src-tauri/gen/android}"
|
|
|
|
if [ ! -d "${ANDROID_GEN}" ]; then
|
|
echo "Android project not found: ${ANDROID_GEN}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
GRADLE_USER_HOME="${GRADLE_USER_HOME:-/root/.gradle}"
|
|
LOCAL_REPO="${ANDROID_AGP_LOCAL_REPO:-/opt/android-agp-maven}"
|
|
mkdir -p "${GRADLE_USER_HOME}/init.d"
|
|
|
|
cat > "${GRADLE_USER_HOME}/init.d/agp-repos.gradle" <<EOF
|
|
def googleMirrors = []
|
|
def localAgpRepo = new File('${LOCAL_REPO}')
|
|
if (localAgpRepo.exists()) {
|
|
googleMirrors.add(localAgpRepo.toURI().toString())
|
|
}
|
|
googleMirrors.addAll([
|
|
'https://maven.google.com',
|
|
'https://dl.google.com/android/maven2/',
|
|
'https://dl.google.com/dl/android/maven2/'
|
|
])
|
|
|
|
gradle.beforeSettings { settings ->
|
|
settings.pluginManagement {
|
|
repositories {
|
|
googleMirrors.each { url ->
|
|
maven { setUrl(url) }
|
|
}
|
|
google()
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
}
|
|
}
|
|
}
|
|
|
|
allprojects {
|
|
buildscript {
|
|
repositories {
|
|
googleMirrors.each { url ->
|
|
maven { setUrl(url) }
|
|
}
|
|
google()
|
|
mavenCentral()
|
|
}
|
|
}
|
|
repositories {
|
|
googleMirrors.each { url ->
|
|
maven { setUrl(url) }
|
|
}
|
|
google()
|
|
mavenCentral()
|
|
}
|
|
}
|
|
EOF
|
|
|
|
insert_maven_repos() {
|
|
local file="$1"
|
|
[ -f "${file}" ] || return 0
|
|
if grep -q 'maven.google.com' "${file}"; then
|
|
return 0
|
|
fi
|
|
|
|
awk '
|
|
/repositories[[:space:]]*\{/ {
|
|
print
|
|
print " maven { url = uri(\"https://maven.google.com\") }"
|
|
print " maven { url = uri(\"https://dl.google.com/android/maven2/\") }"
|
|
print " maven { url = uri(\"file:///opt/android-agp-maven\") }"
|
|
next
|
|
}
|
|
{ print }
|
|
' "${file}" > "${file}.tmp" && mv "${file}.tmp" "${file}"
|
|
}
|
|
|
|
insert_maven_repos "${ANDROID_GEN}/build.gradle.kts"
|
|
insert_maven_repos "${ANDROID_GEN}/buildSrc/build.gradle.kts"
|
|
insert_maven_repos "${ANDROID_GEN}/app/build.gradle.kts" 2>/dev/null || true
|
|
|
|
if [ -f "${ANDROID_GEN}/settings.gradle" ] && ! grep -q 'pluginManagement' "${ANDROID_GEN}/settings.gradle"; then
|
|
{
|
|
cat <<'EOF'
|
|
pluginManagement {
|
|
repositories {
|
|
maven { url = uri("file:///opt/android-agp-maven") }
|
|
maven { url = uri("https://maven.google.com") }
|
|
maven { url = uri("https://dl.google.com/android/maven2/") }
|
|
google()
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
}
|
|
}
|
|
|
|
EOF
|
|
cat "${ANDROID_GEN}/settings.gradle"
|
|
} > "${ANDROID_GEN}/settings.gradle.tmp" && mv "${ANDROID_GEN}/settings.gradle.tmp" "${ANDROID_GEN}/settings.gradle"
|
|
fi
|
|
|
|
echo "==> Gradle repositories patched for AGP (${ANDROID_GEN})"
|