cb6d9e61d1
Co-Authored-By: Claude Opus 4.7 (1M context) <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
| 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 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| adb_wsl | function | bash | infra | 1.0.0 | impure | source adb_wsl.sh [ADB=<path>] [ANDROID_SDK_WIN=<sdk_root>] | Wrapper sourceable para usar adb.exe Windows desde WSL2. Resuelve binario, convierte paths, espera boot del emulador. |
|
|
Source-able shell helpers: adb_run, adb_devices, adb_wsl_to_win, adb_wait_boot. Define ADB env var apuntando a Windows adb.exe via ANDROID_SDK_WIN. | false | error_go_core | false | bash/functions/infra/adb_wsl.sh |
Uso
# Sourcear (usa SDK default)
source bash/functions/infra/adb_wsl.sh
# Sourcear con SDK custom
ANDROID_SDK_WIN=/mnt/d/Android/Sdk source bash/functions/infra/adb_wsl.sh
# Sourcear con binario fijo
ADB=/mnt/c/my/tools/adb.exe source bash/functions/infra/adb_wsl.sh
Funciones expuestas
adb_run "<args...>"
Ejecuta $ADB con los argumentos dados. Retorna el exit code de adb.exe.
adb_run shell ls /sdcard/
adb_run install app.apk
adb_devices
Alias de adb_run devices. Lista dispositivos/emuladores conectados.
adb_devices
# List of devices attached
# emulator-5554 device
adb_wsl_to_win <path_wsl>
Convierte un path WSL a formato Windows con wslpath -w. Si wslpath no está disponible retorna el path sin convertir.
win_path=$(adb_wsl_to_win /home/lucas/proyecto/app.apk)
# C:\Users\lucas\AppData\Local\... (o la ruta Windows equivalente)
adb_run install "$win_path"
adb_wait_boot [timeout_s]
Espera a que el emulador/dispositivo complete el boot (sys.boot_completed = 1). Útil tras lanzar un AVD en CI.
adb_wait_boot # timeout 120s
adb_wait_boot 60 # timeout 60s
Retorna 0 si el boot se completó, 1 si expiró el timeout.
Smoke test
bash bash/functions/infra/adb_wsl.sh --self-test
# OK
Notas
- El script es source-able: define funciones en el shell actual, no crea subshell.
ADBse resuelve una sola vez al sourcing. Si el binario no existe en disco, la carga falla con mensaje en stderr yreturn 1/exit 1.adb_wait_boothace polling cada 3 segundos. Ajustarintervalsi el emulador es especialmente lento.- En WSL2
wslpathsiempre está disponible; el fallback existe para entornos Linux puros que accidentalmente sourceen el archivo. - Si el emulador requiere
-s <serial>, pasar el flag directamente aadb_run:adb_run -s emulator-5554 shell ....