haiku/data/etc/bash_completion.d/bluez

433 lines
10 KiB
Bash

# bash completion for bluez utils
have hcitool && {
_bluetooth_adresses()
{
if [ -n "${COMP_BLUETOOTH_SCAN:-}" ]; then
COMPREPLY=( ${COMPREPLY[@]:-} $( compgen -W "$( hcitool scan | \
awk '/^\t/{print $1}' )" -- "$cur" ) )
fi
}
_bluetooth_devices()
{
COMPREPLY=( ${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 split=false arg
COMPREPLY=()
_get_comp_words_by_ref cur prev
_split_longopt && split=true
case $prev in
-i)
_bluetooth_devices
return 0;
;;
--role)
COMPREPLY=( $( compgen -W 'm s' -- "$cur" ) )
return 0;
;;
--pkt-type)
_bluetooth_packet_types
return 0;
;;
esac
$split && return 0
_get_first_arg
if [ -z $arg ]; then
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--help -i' -- "$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
case $arg in
name|info|dc|rssi|lq|afh|auth|key|clkoff|lst)
_count_args
if [ $args -eq 2 ]; then
_bluetooth_adresses
fi
;;
cc)
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--role --pkt-type' -- "$cur" ) )
else
_count_args
if [ $args -eq 2 ]; then
_bluetooth_adresses
fi
fi
;;
sr)
_count_args
if [ $args -eq 2 ]; then
_bluetooth_adresses
else
COMPREPLY=( $( compgen -W 'master slave' -- "$cur" ) )
fi
;;
cpt)
_count_args
if [ $args -eq 2 ]; then
_bluetooth_adresses
else
_bluetooth_packet_types
fi
;;
tpl|enc|clock)
_count_args
if [ $args -eq 2 ]; then
_bluetooth_adresses
else
COMPREPLY=( $( compgen -W '0 1' -- "$cur" ) )
fi
;;
esac
fi
}
complete -F _hcitool hcitool
_sdptool()
{
local cur prev split=false
COMPREPLY=()
_get_comp_words_by_ref cur prev
_split_longopt && split=true
case $prev in
--bdaddr)
_bluetooth_adresses
return 0;
;;
esac
$split && return 0
_get_first_arg
if [ -z $arg ]; then
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--help' -- "$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_adresses
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
COMPREPLY=()
_get_comp_words_by_ref cur prev
case $prev in
-i)
_bluetooth_devices
return 0;
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-i -s -c -t -f -r' -- "$cur" ) )
else
_bluetooth_adresses
fi
}
complete -F _l2ping l2ping
_rfcomm()
{
local cur prev
COMPREPLY=()
_get_comp_words_by_ref cur prev
case $prev in
-f|--config)
_filedir
return 0;
;;
-i)
_bluetooth_devices
_bluetooth_adresses
return 0;
;;
esac
_get_first_arg
if [ -z $arg ]; then
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--help -a --raw \
--config -i --auth --encrypt --secure --master' -- "$cur" ) )
else
COMPREPLY=( $( compgen -W 'show connect listen watch \
bind release' -- "$cur" ) )
fi
else
_count_args
if [ $args -eq 2 ]; then
_bluetooth_devices
else
case $arg in
connect|bind)
if [ $args -eq 3 ]; then
_bluetooth_adresses
fi
;;
esac
fi
fi
}
complete -F _rfcomm rfcomm
_ciptool()
{
local cur prev
COMPREPLY=()
_get_comp_words_by_ref cur prev
case $prev in
-i)
_bluetooth_devices
_bluetooth_adresses
return 0;
;;
esac
_get_first_arg
if [ -z $arg ]; then
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--help -i' -- "$cur" ) )
else
COMPREPLY=( $( compgen -W 'show search connect release \
loopback' -- "$cur" ) )
fi
else
case $arg in
connect|release|loopback)
_count_args
if [ $args -eq 2 ]; then
_bluetooth_adresses
fi
;;
esac
fi
}
complete -F _ciptool ciptool
_dfutool()
{
local cur prev
COMPREPLY=()
_get_comp_words_by_ref cur prev
case $prev in
-d|--device)
_bluetooth_devices
return 0;
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--help --device' -- "$cur" ) )
else
_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
COMPREPLY=()
_get_comp_words_by_ref cur
_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
case $arg in
putkey|delkey)
_count_args
if [ $args -eq 2 ]; then
_bluetooth_adresses
fi
;;
lm)
_count_args
if [ $args -eq 2 ]; then
COMPREPLY=( $( compgen -W 'MASTER \
SLAVE NONE ACCEPT' -- "$cur" ) )
fi
;;
ptype)
_count_args
if [ $args -eq 2 ]; then
_bluetooth_packet_types
fi
;;
esac
fi
}
complete -F _hciconfig hciconfig
_hciattach()
{
local cur
COMPREPLY=()
_get_comp_words_by_ref cur
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-n -p -t -b -s -l' -- "$cur" ) )
else
_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_adresses
;;
esac
fi
}
complete -F _hciattach hciattach
_hid2hci()
{
local cur
COMPREPLY=()
_get_comp_words_by_ref cur
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--help --quiet -0 --tohci -1 \
--tohid' -- "$cur" ) )
fi
}
complete -F _hid2hci hid2hci
_avctrl()
{
local cur
COMPREPLY=()
_get_comp_words_by_ref cur
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--help --quiet' -- "$cur" ) )
else
_count_args
if [ $args -eq 1 ]; then
COMPREPLY=( $( compgen -W 'discover switch' -- "$cur" ) )
fi
fi
}
complete -F _avctrl avctrl
}
# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh