mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-09 20:33:34 -08:00
238 lines
6.9 KiB
Bash
238 lines
6.9 KiB
Bash
# gnokii(1) completion -*- shell-script -*-
|
|
|
|
_gnokii_memory_type()
|
|
{
|
|
# TODO: reduce the number of choices
|
|
COMPREPLY=($(compgen -W "IN OU SM ME MT" -- "$cur"))
|
|
}
|
|
|
|
_gnokii()
|
|
{
|
|
local cur prev words cword pprev tprev fprev
|
|
_init_completion || return
|
|
|
|
case $prev in
|
|
--config)
|
|
_filedir
|
|
return
|
|
;;
|
|
--phone)
|
|
local config_file
|
|
for config_file in "$XDG_CONFIG_HOME/gnokii/config" \
|
|
"$HOME/.config/gnokii/config" "$HOME/.gnokiirc" \
|
|
"$XDG_CONFIG_DIRS/gnokii/config" /etc/gnokiirc; do
|
|
[[ -f $config_file ]] && break
|
|
done
|
|
[[ ! -f $config_file ]] && return
|
|
COMPREPLY=($(compgen -W \
|
|
"$(command sed -n 's/^\[phone_\(.*\)\]/\1/p' $config_file)" \
|
|
-- "$cur"))
|
|
return
|
|
;;
|
|
--help)
|
|
COMPREPLY=($(compgen -W 'all monitor sms mms phonebook calendar
|
|
todo dial profile settings wap logo ringtone security file
|
|
other' -- "$cur"))
|
|
return
|
|
;;
|
|
--version | --shell | ping)
|
|
return
|
|
;;
|
|
|
|
# MONITOR
|
|
--monitor)
|
|
COMPREPLY=($(compgen -W 'delay once' -- "$cur"))
|
|
return
|
|
;;
|
|
--getdisplaystatus | --displayoutput)
|
|
return
|
|
;;
|
|
--netmonitor)
|
|
COMPREPLY=($(compgen -W 'reset off field devel next nr' \
|
|
-- "$cur"))
|
|
return
|
|
;;
|
|
|
|
# SMS
|
|
--sendsms)
|
|
# (how)TODO ?
|
|
return
|
|
;;
|
|
--savesms)
|
|
COMPREPLY=($(compgen -W '--sender --smsc --smscno --folder
|
|
--location --sent --read --deliver --datetime' -- "$cur"))
|
|
return
|
|
;;
|
|
--memory-type | --memory | --getsms | --deletesms | --getmms | --deletemms | \
|
|
--getphonebook | --deletephonebook)
|
|
_gnokii_memory_type
|
|
return
|
|
;;
|
|
--getsmsc | --getcalendarnote | --deletecalendarnote | --gettodo | \
|
|
--getspeeddial)
|
|
# TODO: grab a specific entry ID
|
|
return
|
|
;;
|
|
--setsmsc | --smsreader | --createsmsfolder | --deletealltodos | \
|
|
--showsmsfolderstatus)
|
|
return
|
|
;;
|
|
--deletesmsfolder | --folder)
|
|
# TODO: folderid
|
|
return
|
|
;;
|
|
--writephonebook)
|
|
COMPREPLY=($(compgen -W '--overwrite --find-free --memory-type
|
|
--location --vcard --ldif' -- "$cur"))
|
|
return
|
|
;;
|
|
--writecalendarnote | --writetodo)
|
|
_filedir vcf
|
|
return
|
|
;;
|
|
|
|
# DIAL
|
|
--setspeeddial | --dialvoice | --senddtmf | --answercall | --hangup)
|
|
# TODO
|
|
return
|
|
;;
|
|
--divert)
|
|
COMPREPLY=($(compgen -W '--op' -- "$cur"))
|
|
return
|
|
;;
|
|
|
|
# PROFILE
|
|
--getprofile | --setactiveprofile)
|
|
# TODO
|
|
return
|
|
;;
|
|
--setprofile | --getactiveprofile)
|
|
return
|
|
;;
|
|
|
|
# SETTINGS
|
|
--reset)
|
|
COMPREPLY=($(compgen -W 'soft hard' -- "$cur"))
|
|
return
|
|
;;
|
|
--setdatetime | --setalarm)
|
|
# TODO
|
|
return
|
|
;;
|
|
--getdatetime | --getalarm)
|
|
return
|
|
;;
|
|
|
|
# WAP
|
|
--getwapbookmark | --writewapbookmark | --deletewapbookmark | \
|
|
--getwapsetting | --writewapsetting | --activatewapsetting)
|
|
return
|
|
;;
|
|
|
|
# LOGOS
|
|
--sendlogo)
|
|
COMPREPLY=($(compgen -W 'caller op picture' -- "$cur"))
|
|
return
|
|
;;
|
|
--setlogo | --getlogo)
|
|
COMPREPLY=($(compgen -W 'op startup caller dealer text' \
|
|
-- "$cur"))
|
|
return
|
|
;;
|
|
--viewlogo)
|
|
# TODO: logofile
|
|
return
|
|
;;
|
|
|
|
--entersecuritycode)
|
|
COMPREPLY=($(compgen -W 'PIN PIN2 PUK PUK2 SEC' -- "$cur"))
|
|
return
|
|
;;
|
|
|
|
# TODO: RINGTONES
|
|
esac
|
|
|
|
# second level completion
|
|
if [[ $((cword - 2)) -ge 1 && ${words[cword - 2]} =~ --* ]]; then
|
|
pprev=${words[cword - 2]}
|
|
case $pprev in
|
|
--setspeeddial)
|
|
_gnokii_memory_type
|
|
return
|
|
;;
|
|
--getsms | --deletesms | --getmms | --deletemms | --getphonebook | \
|
|
--writetodo | --writecalendarnote)
|
|
# TODO: start number
|
|
return
|
|
;;
|
|
--gettodo | --getcalendarnote)
|
|
COMPREPLY=($(compgen -W '{1..9} end --vCal' -- "$cur"))
|
|
return
|
|
;;
|
|
--deletecalendarnote)
|
|
COMPREPLY=($(compgen -W '{1..9} end' -- "$cur"))
|
|
return
|
|
;;
|
|
--divert)
|
|
COMPREPLY=($(compgen -W 'register enable query disable
|
|
erasure' -- "$cur"))
|
|
return
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# third level completion
|
|
if [[ $((cword - 3)) -ge 1 && ${words[cword - 3]} =~ --* ]]; then
|
|
tprev=${words[cword - 3]}
|
|
case $tprev in
|
|
--deletesms | --deletemms)
|
|
COMPREPLY=($(compgen -W 'end' -- "$cur"))
|
|
return
|
|
;;
|
|
--getphonebook | --writetodo | --writecalendarnote)
|
|
COMPREPLY=($(compgen -W '{1..9} end' -- "$cur"))
|
|
return
|
|
;;
|
|
--gettodo | --getcalendarnote)
|
|
[[ ${words[cword - 1]} == end ]] &&
|
|
COMPREPLY=($(compgen -W '--vCal' -- "$cur"))
|
|
return
|
|
;;
|
|
--divert)
|
|
COMPREPLY=($(compgen -W '--type' -- "$cur"))
|
|
return
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# fourth level completion
|
|
if [[ $((cword - 4)) -ge 1 && ${words[cword - 4]} =~ --* ]]; then
|
|
fprev=${words[cword - 4]}
|
|
case $fprev in
|
|
--getphonebook)
|
|
COMPREPLY=($(compgen -W '--raw --vcard --ldif' -- "$cur"))
|
|
return
|
|
;;
|
|
--divert)
|
|
COMPREPLY=($(compgen -W 'all busy noans outofreach notavail' \
|
|
-- "$cur"))
|
|
return
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
# safer to use LANG=C
|
|
local all_cmd="$(LANG=C _parse_help $1 "--help all")"
|
|
# these 2 below are allowed in combination with others
|
|
local main_cmd=$(command grep -v -- '--config\|--phone' <<<"$all_cmd")
|
|
|
|
# don't provide main command completions if one is
|
|
# already on the command line
|
|
[[ $COMP_LINE =~ $(tr ' ' '\b|' <<<$main_cmd) ]] && return
|
|
|
|
COMPREPLY=($(compgen -W "$all_cmd" -- "$cur"))
|
|
} &&
|
|
complete -F _gnokii gnokii
|
|
|
|
# ex: filetype=sh
|