Add avd completion to _emulator
This resolves a TODO in _emulator by adding completion for AVD names. This adds completion for "-avd" as well as the special "@AVD_NAME" syntax for non-option arguments.
This commit is contained in:
parent
bf24777aa1
commit
99780ec53d
|
@ -18,11 +18,15 @@
|
||||||
typeset -A opt_args
|
typeset -A opt_args
|
||||||
local context state line curcontext="$curcontext"
|
local context state line curcontext="$curcontext"
|
||||||
|
|
||||||
|
_list_avds() {
|
||||||
|
local -a _avds=($HOME/.android/avd/*.ini(N.:t:r))
|
||||||
|
echo "${_avds[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
# TODO All image options are contextual to -sysdir value
|
# TODO All image options are contextual to -sysdir value
|
||||||
# TODO All skin options are contextual to -skindir value
|
# TODO All skin options are contextual to -skindir value
|
||||||
# TODO snapshot options are mutually exclusive
|
# TODO snapshot options are mutually exclusive
|
||||||
# TODO Use '-snapshot-list' output for snapshot names
|
# TODO Use '-snapshot-list' output for snapshot names
|
||||||
# TODO Complete -avd with avd names ?
|
|
||||||
# TODO -logcat: use completer from _adb
|
# TODO -logcat: use completer from _adb
|
||||||
# TODO Complete options with device values
|
# TODO Complete options with device values
|
||||||
# TODO Complete -prop
|
# TODO Complete -prop
|
||||||
|
@ -62,7 +66,7 @@ _arguments \
|
||||||
'-snapshot-list[show a list of available snapshots]' \
|
'-snapshot-list[show a list of available snapshots]' \
|
||||||
'-no-snapshot-update-time[do not do try to correct snapshot time on restore]' \
|
'-no-snapshot-update-time[do not do try to correct snapshot time on restore]' \
|
||||||
'-wipe-data[reset the user data image (copy it from initdata)]' \
|
'-wipe-data[reset the user data image (copy it from initdata)]' \
|
||||||
'-avd[use a specific android virtual device]:android virtual device name' \
|
'-avd[use a specific android virtual device]:android virtual device name:($(_list_avds))' \
|
||||||
'-skindir[search skins in <dir> (default <system>/skins)]: :_files -/' \
|
'-skindir[search skins in <dir> (default <system>/skins)]: :_files -/' \
|
||||||
'-skin[select a given skin]' \
|
'-skin[select a given skin]' \
|
||||||
'(-noskin -no-skin)'{-noskin,-no-skin}'[don'\''t use any emulator skin]' \
|
'(-noskin -no-skin)'{-noskin,-no-skin}'[don'\''t use any emulator skin]' \
|
||||||
|
@ -108,7 +112,21 @@ _arguments \
|
||||||
'-memcheck[enable memory access checking]:flags' \
|
'-memcheck[enable memory access checking]:flags' \
|
||||||
'-qemu[pass arguments to qemu]:arguments' \
|
'-qemu[pass arguments to qemu]:arguments' \
|
||||||
'-verbose[same as '\''-debug-init'\'']' \
|
'-verbose[same as '\''-debug-init'\'']' \
|
||||||
'*'{-debug,-debug-,-debug-no-}'[enable/disable specific debug messages]:tag'
|
'*'{-debug,-debug-,-debug-no-}'[enable/disable specific debug messages]:tag' \
|
||||||
|
'1: :->cmds' \
|
||||||
|
'*:: :->args' && ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
cmds)
|
||||||
|
local -a _avds=($(_list_avds))
|
||||||
|
for ((i=1; i<=${#_avds[@]}; i++)); do
|
||||||
|
_avds[i]="@${_avds[i]}"
|
||||||
|
done
|
||||||
|
_values 'avds' "${_avds[@]}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# mode: Shell-Script
|
# mode: Shell-Script
|
||||||
|
|
Loading…
Reference in New Issue