diff options
Diffstat (limited to 'completions/postmap')
-rw-r--r-- | completions/postmap | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/completions/postmap b/completions/postmap new file mode 100644 index 00000000..21a92fac --- /dev/null +++ b/completions/postmap @@ -0,0 +1,49 @@ +# postalias(1) and postmap(1) completion + +_postmap() +{ + local cur prev words cword + _init_completion || return + + case $prev in + -c) + _filedir -d + return 0 + ;; + -[dq]) + return 0 + ;; + esac + + if [[ $cur == -* ]]; then + COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) + return 0 + fi + + if [[ "$cur" == *:* ]]; then + compopt -o filenames + COMPREPLY=( $( compgen -f -- "${cur#*:}" ) ) + else + local len=${#cur} idx=0 pval + for pval in $( /usr/sbin/postconf -m ); do + if [[ "$cur" == "${pval:0:$len}" ]]; then + COMPREPLY[$idx]="$pval:" + idx=$(($idx+1)) + fi + done + if [[ $idx -eq 0 ]]; then + compopt -o filenames + COMPREPLY=( $( compgen -f -- "$cur" ) ) + fi + fi + return 0 +} && +complete -F _postmap postmap postalias + +# 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 |