summaryrefslogtreecommitdiffstats
path: root/completions/hcitool
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--completions/hcitool380
1 files changed, 380 insertions, 0 deletions
diff --git a/completions/hcitool b/completions/hcitool
new file mode 100644
index 0000000..58bf5a7
--- /dev/null
+++ b/completions/hcitool
@@ -0,0 +1,380 @@
+# bash completion for bluez utils -*- shell-script -*-
+
+_bluetooth_addresses()
+{
+ if [[ -n ${COMP_BLUETOOTH_SCAN:-} ]]; then
+ COMPREPLY+=($(compgen -W "$(hcitool scan |
+ awk '/^\t/{print $1}')" -- "$cur"))
+ fi
+}
+
+_bluetooth_devices()
+{
+ COMPREPLY+=($(compgen -W "$(hcitool dev |
+ awk '/^\t/{print $1}')" -- "$cur"))
+}
+
+_bluetooth_services()
+{
+ COMPREPLY=($(compgen -W 'DID SP DUN LAN FAX OPUSH FTP HS HF HFAG SAP NAP
+ GN PANU HCRP HID CIP A2SRC A2SNK AVRCT AVRTG UDIUE UDITE SYNCML' \
+ -- "$cur"))
+}
+
+_bluetooth_packet_types()
+{
+ COMPREPLY=($(compgen -W 'DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3' \
+ -- "$cur"))
+}
+
+_hcitool()
+{
+ local cur prev words cword split
+ _init_completion -s || return
+
+ case $prev in
+ -i)
+ _bluetooth_devices
+ return
+ ;;
+ --role)
+ COMPREPLY=($(compgen -W 'm s' -- "$cur"))
+ return
+ ;;
+ --pkt-type)
+ _bluetooth_packet_types
+ return
+ ;;
+ esac
+
+ $split && return
+
+ local arg
+ _get_first_arg
+ if [[ -z $arg ]]; then
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W 'dev inq scan name info spinq epinq cmd
+ con cc dc sr cpt rssi lq tpl afh lst auth enc key clkoff
+ clock' -- "$cur"))
+ fi
+ else
+ local args
+ case $arg in
+ name | info | dc | rssi | lq | afh | auth | key | clkoff | lst)
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_addresses
+ fi
+ ;;
+ cc)
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '--role --pkt-type' -- "$cur"))
+ else
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_addresses
+ fi
+ fi
+ ;;
+ sr)
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_addresses
+ else
+ COMPREPLY=($(compgen -W 'master slave' -- "$cur"))
+ fi
+ ;;
+ cpt)
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_addresses
+ else
+ _bluetooth_packet_types
+ fi
+ ;;
+ tpl | enc | clock)
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_addresses
+ else
+ COMPREPLY=($(compgen -W '0 1' -- "$cur"))
+ fi
+ ;;
+ esac
+ fi
+} &&
+ complete -F _hcitool hcitool
+
+_sdptool()
+{
+ local cur prev words cword split
+ _init_completion -s || return
+
+ case $prev in
+ --bdaddr)
+ _bluetooth_addresses
+ return
+ ;;
+ esac
+
+ $split && return
+
+ local arg
+ _get_first_arg
+ if [[ -z $arg ]]; then
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W 'search browse records add del get
+ setattr setseq' -- "$cur"))
+ fi
+ else
+ case $arg in
+ search)
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '--bdaddr --tree --raw --xml' \
+ -- "$cur"))
+ else
+ _bluetooth_services
+ fi
+ ;;
+ browse | records)
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '--tree --raw --xml' -- "$cur"))
+ else
+ _bluetooth_addresses
+ fi
+ ;;
+ add)
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '--handle --channel' -- "$cur"))
+ else
+ _bluetooth_services
+ fi
+ ;;
+ get)
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '--bdaddr --tree --raw --xml' \
+ -- "$cur"))
+ fi
+ ;;
+ esac
+ fi
+} &&
+ complete -F _sdptool sdptool
+
+_l2ping()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ case $prev in
+ -i)
+ _bluetooth_devices
+ return
+ ;;
+ -s | -c | -t | -d)
+ return
+ ;;
+ esac
+
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_usage "$1")' -- "$cur"))
+ else
+ _bluetooth_addresses
+ fi
+} &&
+ complete -F _l2ping l2ping
+
+_rfcomm()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ case $prev in
+ -f | --config)
+ _filedir
+ return
+ ;;
+ -i)
+ _bluetooth_devices
+ _bluetooth_addresses
+ return
+ ;;
+ esac
+
+ local arg
+ _get_first_arg
+ if [[ -z $arg ]]; then
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W 'show connect listen watch bind
+ release' -- "$cur"))
+ fi
+ else
+ local args
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_devices
+ else
+ case $arg in
+ connect | bind)
+ if ((args == 3)); then
+ _bluetooth_addresses
+ fi
+ ;;
+ esac
+ fi
+ fi
+} &&
+ complete -F _rfcomm rfcomm
+
+_ciptool()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ case $prev in
+ -i)
+ _bluetooth_devices
+ _bluetooth_addresses
+ return
+ ;;
+ esac
+
+ local arg
+ _get_first_arg
+ if [[ -z $arg ]]; then
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W 'show search connect release loopback' \
+ -- "$cur"))
+ fi
+ else
+ local args
+ case $arg in
+ connect | release | loopback)
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_addresses
+ fi
+ ;;
+ esac
+ fi
+} &&
+ complete -F _ciptool ciptool
+
+_dfutool()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ case $prev in
+ -d | --device)
+ _bluetooth_devices
+ return
+ ;;
+ esac
+
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
+ else
+ local args
+ _count_args
+ case $args in
+ 1)
+ COMPREPLY=($(compgen -W 'verify modify upgrade archive' \
+ -- "$cur"))
+ ;;
+ 2)
+ _filedir
+ ;;
+ esac
+ fi
+} &&
+ complete -F _dfutool dfutool
+
+_hciconfig()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ local arg
+ _get_first_arg
+ if [[ -z $arg ]]; then
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '--help --all' -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W 'up down reset rstat auth noauth encrypt
+ noencrypt secmgr nosecmgr piscan noscan iscan pscan ptype name
+ class voice iac inqmode inqdata inqtype inqparams pageparms
+ pageto afhmode aclmtu scomtu putkey delkey commands features
+ version revision lm' -- "$cur"))
+ fi
+ else
+ local args
+ case $arg in
+ putkey | delkey)
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_addresses
+ fi
+ ;;
+ lm)
+ _count_args
+ if ((args == 2)); then
+ COMPREPLY=($(compgen -W 'MASTER SLAVE NONE ACCEPT' \
+ -- "$cur"))
+ fi
+ ;;
+ ptype)
+ _count_args
+ if ((args == 2)); then
+ _bluetooth_packet_types
+ fi
+ ;;
+ esac
+ fi
+} &&
+ complete -F _hciconfig hciconfig
+
+_hciattach()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ if [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W '-n -p -t -b -s -l' -- "$cur"))
+ else
+ local args
+ _count_args
+ case $args in
+ 1)
+ COMPREPLY=($(printf '%s\n' /dev/tty*))
+ COMPREPLY=($(compgen -W '${COMPREPLY[@]}
+ ${COMPREPLY[@]#/dev/}' -- "$cur"))
+ ;;
+ 2)
+ COMPREPLY=($(compgen -W 'any ericsson digi xircom csr bboxes
+ swave bcsp 0x0105 0x080a 0x0160 0x0002' -- "$cur"))
+ ;;
+ 3)
+ COMPREPLY=($(compgen -W '9600 19200 38400 57600 115200 230400
+ 460800 921600' -- "$cur"))
+ ;;
+ 4)
+ COMPREPLY=($(compgen -W 'flow noflow' -- "$cur"))
+ ;;
+ 5)
+ _bluetooth_addresses
+ ;;
+ esac
+ fi
+} &&
+ complete -F _hciattach hciattach
+
+# ex: filetype=sh