summaryrefslogtreecommitdiff
path: root/plugins/adb/_adb
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/adb/_adb')
-rw-r--r--plugins/adb/_adb31
1 files changed, 29 insertions, 2 deletions
diff --git a/plugins/adb/_adb b/plugins/adb/_adb
index 22089581a..78c457746 100644
--- a/plugins/adb/_adb
+++ b/plugins/adb/_adb
@@ -13,25 +13,52 @@ _1st_arguments=(
'disconnect:disconnect from a TCP/IP device. Port 5555 is default.'
'emu:run emulator console command'
'forward:forward socket connections'
+'get-devpath:print the device path'
+'get-serialno:print the serial number of the device'
+'get-state:print the current state of the device: offline | bootloader | device'
'help:show the help message'
'install:push this package file to the device and install it'
'jdwp:list PIDs of processes hosting a JDWP transport'
-'logcat:View device log'
+'keygen:generate adb public/private key'
+'kill-server:kill the server if it is running'
+'logcat:view device log'
'pull:copy file/dir from device'
'push:copy file/dir to device'
+'reboot:reboots the device, optionally into the bootloader or recovery program'
+'reboot-bootloader:reboots the device into the bootloader'
+'remount:remounts the partitions on the device read-write'
+'root:restarts the adbd daemon with root permissions'
+'sideload:push a ZIP to device and install it'
'shell:run remote shell interactively'
'sync:copy host->device only if changed (-l means list but dont copy)'
-‘tcpip:restart host adb in tcpip mode’
+'start-server:ensure that there is a server running'
+'tcpip:restart host adb in tcpip mode'
'uninstall:remove this app package from the device'
+'usb:restart the adbd daemon listing on USB'
'version:show version num'
+'wait-for-device:block until device is online'
)
local expl
local -a pkgs installed_pkgs
_arguments \
+ '-s[devices]:specify device:->specify_device' \
'*:: :->subcmds' && return 0
+case "$state" in
+ specify_device)
+ _values -C 'devices' ${$(adb devices -l|awk 'NR>1&& $1 \
+ {sub(/ +/," ",$0); \
+ gsub(":","\\:",$1); \
+ for(i=1;i<=NF;i++) {
+ if($i ~ /model:/) { split($i,m,":") } \
+ else if($i ~ /product:/) { split($i,p,":") } } \
+ printf "%s[%s(%s)] ",$1, p[2], m[2]}'):-""}
+ return
+ ;;
+esac
+
if (( CURRENT == 1 )); then
_describe -t commands "adb subcommand" _1st_arguments
return