[Bash-completion-commits] ./current r1269: completion for bluez-utils

Guillaume Rousse guillomovitch at zarb.org
Mon Jan 19 20:46:25 UTC 2009


------------------------------------------------------------
revno: 1269
committer: Guillaume Rousse <guillomovitch at zarb.org>
branch nick: current
timestamp: Mon 2009-01-19 21:46:25 +0100
message:
  completion for bluez-utils
added:
  to_review/bluez-utils
-------------- next part --------------
=== added file 'to_review/bluez-utils'
--- a/to_review/bluez-utils	1970-01-01 00:00:00 +0000
+++ b/to_review/bluez-utils	2009-01-19 20:46:25 +0000
@@ -0,0 +1,455 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+#
+# bash completion for bluez-utils
+
+have hcitool && {
+_bluetooth_adresses()
+{
+	if [ -n "${COMP_BLUETOOTH_SCAN:-}" ]; then
+		COMPREPLY=( ${COMPREPLY[@]:-} $( hcitool scan | \
+			awk '/^\t/{print $1}' | grep "^$cur" ) )
+	fi
+}
+
+_bluetooth_devices()
+{
+	COMPREPLY=( ${COMPREPLY[@]:-} $( hcitool dev | \
+		awk '/^\t/{print $1}' | grep "^$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 ) )
+}
+
+_get_command() 
+{
+	local i
+
+	command=
+	for (( i=1; i < COMP_CWORD; i++ )); do
+		if [[ "${COMP_WORDS[i]}" != -* ]]; then
+			command=${COMP_WORDS[i]}
+			break
+		fi
+	done
+}
+
+_hcitool()
+{
+	local cur prev
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case $prev in
+		-i)
+			_bluetooth_devices
+			return 0;
+			;;
+	esac
+
+	# --name=value style option
+	if [[ "$cur" == *=* ]]; then
+		prev=${cur/=*/}
+		cur=${cur/*=/}
+		case $prev in
+			--role)
+				COMPREPLY=( $( compgen -W 'm s' -- $cur ) )
+				return 0;
+				;;
+			--pkt-type)
+				_bluetooth_packet_types
+				return 0;
+				;;
+		esac
+	fi
+
+
+	_get_command
+	if [ -z $command ]; then
+		if [[ "$cur" == -* ]]; then
+			COMPREPLY=( $( compgen -W '-h -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 $command 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
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case $prev in
+		--bdaddr)
+			_bluetooth_adresses
+			return 0;
+			;;
+	esac
+
+	_get_command
+	if [ -z $command ]; 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 $command 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=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	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=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case $prev in
+		-@(f|-config))
+			_filedir
+			return 0;
+			;;
+		-i)
+			_bluetooth_devices
+			_bluetooth_adresses
+			return 0;
+			;;
+	esac
+
+	_get_command
+	if [ -z $command ]; then
+		if [[ "$cur" == -* ]]; then
+			COMPREPLY=( $( compgen -W '-h --help -a -r --raw -f \
+				--config -i -A --auth -E --encrypt -S --secure \
+				-M --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 $command in
+				@(connect|bind))
+					if [ $args -eq 3 ]; then
+						_bluetooth_adresses
+					fi
+					;;
+			esac
+		fi
+	fi
+}
+complete -F _rfcomm rfcomm
+
+_ciptool()
+{
+	local cur prev
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case $prev in
+		-i)
+			_bluetooth_devices
+			_bluetooth_adresses
+			return 0;
+			;;
+	esac
+
+	_get_command
+	if [ -z $command ]; then
+		if [[ "$cur" == -* ]]; then
+			COMPREPLY=( $( compgen -W '-h --help -i' -- $cur ) )
+		else
+			COMPREPLY=( $( compgen -W 'show search connect release \
+				loopback' -- $cur ) )
+		fi
+	else
+		case $command 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=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case $prev in
+		-@(d|-device))
+			_bluetooth_devices
+			return 0;
+			;;
+	esac
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-h --help -d --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=()
+	cur=`_get_cword`
+
+	_get_command
+	if [ -z $command ]; then
+		if [[ "$cur" == -* ]]; then
+			COMPREPLY=( $( compgen -W '-h --help -a --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 $command 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=()
+	cur=`_get_cword`
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-n -p -t -b -s -l' -- $cur ) )
+	else
+		_count_args
+		case $args in
+			1)
+				COMPREPLY=( $( command ls /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=()
+	cur=`_get_cword`
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-h --help -q --quiet -0 --tohci -1 \
+			--tohid' -- $cur ) )
+	fi
+}
+complete -F _hid2hci hid2hci
+
+_avctrl()
+{
+	local cur
+
+	COMPREPLY=()
+	cur=`_get_cword`
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-h --help -q --quiet' -- $cur ) )
+	else
+		_count_args
+		if [ $args -eq 1 ]; then
+			COMPREPLY=( $( compgen -W 'discover switch' -- $cur ) )
+		fi
+	fi
+}
+complete -F _avctrl avctrl
+}



More information about the Bash-completion-commits mailing list