_adb 2.2 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#compdef adb
#autoload

# in order to make this work, you will need to have the android adb tools

# adb zsh completion, based on homebrew completion

local -a _1st_arguments
_1st_arguments=(
'bugreport:return all information from the device that should be included in a bug report.'
'connect:connect to a device via TCP/IP Port 5555 is default.'
'devices:list all connected devices'
'disconnect:disconnect from a TCP/IP device. Port 5555 is default.'
'emu:run emulator console command'
'forward:forward socket connections'
16
17
18
'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'
19
20
21
'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'
22
'keygen:generate adb public/private key'
Luca Stefani's avatar
Luca Stefani committed
23
24
'kill-server:kill the server if it is running'
'logcat:view device log'
25
26
'pull:copy file/dir from device'
'push:copy file/dir to device'
Luca Stefani's avatar
Luca Stefani committed
27
28
29
30
31
'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'
32
33
'shell:run remote shell interactively'
'sync:copy host->device only if changed (-l means list but dont copy)'
Luca Stefani's avatar
Luca Stefani committed
34
35
'start-server:ensure that there is a server running'
'tcpip:restart host adb in tcpip mode'
36
'uninstall:remove this app package from the device'
37
'usb:restart the adbd daemon listing on USB'
38
'version:show version num'
Luca Stefani's avatar
Luca Stefani committed
39
'wait-for-device:block until device is online'
40
41
42
43
44
45
)

local expl
local -a pkgs installed_pkgs

_arguments \
46
	'-s[devices]:specify device:->specify_device' \
47
48
	'*:: :->subcmds' && return 0

49
50
case "$state" in
	specify_device)
51
	_values -C 'devices' ${$(adb devices -l|awk 'NR>1&& $1 \
52
53
54
55
56
57
		{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]}'):-""}
58
59
60
61
	return
	;;
esac

62
63
64
65
if (( CURRENT == 1 )); then
	_describe -t commands "adb subcommand" _1st_arguments
	return
fi
66

67
_files