mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-09 20:33:34 -08:00
381 lines
9.4 KiB
Bash
381 lines
9.4 KiB
Bash
# 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
|