c875723bef
This way it's clearer to users that an argument is expected. It's likely that this commit does not catch all such cases, but it should do it for most of the affected commands I have installed.
55 lines
1.3 KiB
Bash
55 lines
1.3 KiB
Bash
# bash completion for wvdial
|
|
|
|
have wvdial || return
|
|
|
|
_wvdial()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
--config)
|
|
_filedir
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
local config i IFS=$'\n'
|
|
|
|
case $cur in
|
|
-*)
|
|
COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
|
|
[[ $COMPREPLY == *= ]] && compopt -o nospace
|
|
;;
|
|
*)
|
|
# start with global and personal config files
|
|
config="/etc/wvdial.conf"$'\n'"$HOME/.wvdialrc"
|
|
# replace with command line config file if present
|
|
for (( i=1; i < cword; i++ )); do
|
|
if [[ "${words[i]}" == "--config" ]]; then
|
|
config=${words[i+1]}
|
|
break
|
|
fi
|
|
done
|
|
# parse config files for sections and
|
|
# remove default section
|
|
COMPREPLY=( $( sed -ne "s|^\[Dialer \($cur.*\)\]$|\1|p" $config \
|
|
2>/dev/null | command grep -v '^Defaults$'))
|
|
# escape spaces
|
|
COMPREPLY=${COMPREPLY// /\\ }
|
|
;;
|
|
esac
|
|
|
|
} &&
|
|
complete -F _wvdial wvdial
|
|
|
|
# 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
|