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