42c14fae59
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.4 KiB
2.4 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.0.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 tanto SDK Linux (~/Android/Sdk via install_android_sdk) como 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:
- Intenta
$HOME/Android/Sdk(SDK Linux viainstall_android_sdk_bash_infra) - Si no existe, intenta
$ANDROID_SDK_WIN(SDK Windows montado en/mnt/c/...) - Si ninguno, 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.