diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2011-10-12 23:01:10 +0300 |
---|---|---|
committer | Ville Skyttä <ville.skytta@iki.fi> | 2011-10-12 23:01:10 +0300 |
commit | 156656c16d4302d059221a06eb7c1bd460e41fe9 (patch) | |
tree | 87b9edeaab27b4d7a5ae70644a5b7803c3cc7c25 /completions/postmap | |
parent | d3d6476f6c24cebb89e4712477e568dd5f5fbca8 (diff) | |
download | bash-completion-156656c16d4302d059221a06eb7c1bd460e41fe9.tar.gz |
Split/rename many completions into per-command files.
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 |