# bash completion for wvdial -*- shell-script -*- _wvdial() { local cur prev words cword split _init_completion -s || return case $prev in --config) _filedir return ;; 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=($(command sed -ne "s|^\[Dialer \($cur.*\)\]$|\1|p" $config \ 2>/dev/null | command grep -v '^Defaults$')) # escape spaces COMPREPLY=(${COMPREPLY[@]// /\\ }) ;; esac } && complete -F _wvdial wvdial # ex: filetype=sh