gnokii: Various minor and cosmetic fixes

master
Ville Skyttä 2015-05-11 12:13:41 +03:00
parent 3eb1b0dda8
commit b07e355111
1 changed files with 87 additions and 81 deletions

View File

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