27ae829a1e
ANDROID_HOME resolution ahora busca en orden: 1. $HOME/android-sdk — path que instala install_android_sdk_bash_infra 2. $HOME/Android/Sdk — default Android Studio Linux 3. WSL2 Windows path — $ANDROID_SDK_WIN o /mnt/c/Users/$USER/.../Android/Sdk Cada candidato se valida con platform-tools/ presente (no solo directorio raiz). Fix: issue 0076 Co-Authored-By: fn-orquestador <noreply@anthropic.com>
2.9 KiB
2.9 KiB
name, kind, lang, domain, version, purity, signature, description, tags, params, output, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, notes
| name | kind | lang | domain | version | purity | signature | description | tags | params | output | uses_functions | uses_types | returns | returns_optional | error_type | imports | tested | tests | test_file_path | file_path | notes | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gradle_run | function | bash | infra | 1.1.0 | impure | gradle_run(project_dir: string, task...: string) -> int | Wrapper canonico para invocar gradlew Android en WSL2 con JDK 17 + ANDROID_HOME validados. |
|
|
Stdout/stderr del build Gradle. Exit code = exit code de gradlew. Exit 1 si JDK17 missing, exit 2 si no hay gradlew. | false | error_go_core | false | bash/functions/infra/gradle_run.sh | Las demas funciones gradle_* lo sourcean. Reutiliza patron de adb_wsl_bash_infra para ser source-able+ejecutable. Cubre SDK Linux en $HOME/android-sdk (install_android_sdk_bash_infra), $HOME/Android/Sdk (Android Studio), y SDK Windows (/mnt/c/...) montado en WSL. |
Ejemplo
# Como libreria (en otro script gradle_*)
source "$(dirname "${BASH_SOURCE[0]}")/gradle_run.sh"
gradle_run "$project_dir" assembleDebug
# Directo
bash bash/functions/infra/gradle_run.sh /path/to/MyApp assembleDebug
bash bash/functions/infra/gradle_run.sh /path/to/MyApp :app:test :app:lint
Comportamiento de resolucion
JAVA_HOME
Si no esta fijado en el entorno, busca en orden:
/usr/lib/jvm/java-17-openjdk-amd64/usr/lib/jvm/temurin-17-jdk-amd64/opt/android-studio-jbr/jbr
Si ninguno existe → error en stderr y return 1.
ANDROID_HOME
Si no esta fijado, busca en orden (requiere que el directorio tenga platform-tools/):
$HOME/android-sdk— default deinstall_android_sdk_bash_infra(lowercase)$HOME/Android/Sdk— default de Android Studio en Linux$ANDROID_SDK_WIN(o/mnt/c/Users/$USER/AppData/Local/Android/Sdk) — SDK Windows montado en WSL2
Si ninguno existe con platform-tools/, lo deja vacio — gradle mostrara el error adecuado para builds JVM puros
Exit codes
| Codigo | Significado |
|---|---|
| 0 | Build exitoso |
| 1 | JDK 17 no encontrado |
| 2 | ./gradlew no existe en project_dir |
| * | Exit code propagado de gradlew |
Notas
Source-able y ejecutable directo. Al sourcear, el caller importa la funcion gradle_run sin ejecutarla. Al ejecutar directamente, delega "$@" a gradle_run.
No exporta JAVA_HOME/ANDROID_HOME al entorno del shell padre — los variables se pasan solo al subshell de gradlew para evitar contaminar el entorno.
Capability growth log
- v1.1.0 (2026-05-15) — ANDROID_HOME detection order: prioriza
$HOME/android-sdk(install_android_sdk default) sobre$HOME/Android/Sdk; requiere platform-tools/ presente; anade WSL2 Windows path como fallback explicito (issue 0076)