diff options
Diffstat (limited to 'contrib/mailman')
-rw-r--r-- | contrib/mailman | 796 |
1 files changed, 432 insertions, 364 deletions
diff --git a/contrib/mailman b/contrib/mailman index 45b7db36..8cfec3e8 100644 --- a/contrib/mailman +++ b/contrib/mailman @@ -1,533 +1,601 @@ -# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- -# ex: ts=8 sw=8 noet filetype=sh -# # Mailman completion by Guillaume Rousse <rousse@ccr.jussieu.fr> +have list_lists && { _mailman_lists() { - COMPREPLY=( $( list_lists -b | grep "^$cur") ) + COMPREPLY=( $( compgen -W '$( list_lists -b )' -- "$cur" ) ) } -_add_members() +_list_lists() { - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - case "$prev" in - -@(r|d|-regular-members-file=|-digest-members-file=)) - _filedir - return 0 - ;; - -@(w|a|-welcome-msg=|-admin-notify=)) - COMPREPLY=( $( compgen -W 'y n' -- $cur) ) - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--regular-members-file= -r \ - --digest-members-file= -d --welcome-msg= -w \ - --admin-notify= -a --help -h' -- $cur ) ) - else - _mailman_lists - fi + local cur + + COMPREPLY=() + cur=`_get_cword` + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a --advertised --virtual-host-overview -V \ + -b --bare -h --help' -- "$cur" ) ) + fi +} && +complete -F _list_lists list_lists } + +have add_members && +_add_members() +{ + local cur prev split=false + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + _split_longopt && split=true + + case "$prev" in + -@(r|d|-regular-members-file|-digest-members-file)) + _filedir + return 0 + ;; + -@(w|a|-welcome-msg|-admin-notify)) + COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--regular-members-file -r \ + --digest-members-file -d --welcome-msg -w \ + --admin-notify -a --help -h' -- "$cur" ) ) + else + _mailman_lists + fi + +} && complete -F _add_members add_members +have remove_members && _remove_members() { + local cur prev split=false - local cur prev + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} + _split_longopt && split=true - case "$prev" in - -@(f|-file=)) - _filedir - return 0 - ;; - esac + case "$prev" in + -@(f|-file)) + _filedir + return 0 + ;; + esac - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--file= -f --all -a \ - --fromall --nouserack -n --noadminack -N \ - --help -h' -- $cur ) ) - else - _mailman_lists - fi + $split && return 0 -} + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--file -f --all -a --fromall --nouserack -n \ + --noadminack -N --help -h' -- "$cur" ) ) + else + _mailman_lists + fi + +} && complete -F _remove_members remove_members +have find_member && _find_member() { + local cur prev split=false - local cur prev + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} + _split_longopt && split=true - case "$prev" in - -@(l|x|-listname=|-exclude=)) - _mailman_lists - return 0 - ;; - esac + case "$prev" in + -@(l|x|-listname|-exclude)) + _mailman_lists + return 0 + ;; + esac - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-l --listname= -x \ - --exclude= --owners -w --help -h' -- $cur ) ) - fi + $split && return 0 -} + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-l --listname -x --exclude --owners -w \ + --help -h' -- "$cur" ) ) + fi + +} && complete -F _find_member find_member +have clone_member && _clone_member() { + local cur prev split=false - local cur prev + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} + _split_longopt && split=true - case "$prev" in - -@(l|-listname=)) - _mailman_lists - return 0 - ;; - esac + case "$prev" in + -@(l|-listname)) + _mailman_lists + return 0 + ;; + esac - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-l --listname= --remove -r \ - --admin -a --quiet -q --nomodify -n --help -h' -- $cur ) ) - fi + $split && return 0 -} + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-l --listname --remove -r --admin -a \ + --quiet -q --nomodify -n --help -h' -- "$cur" ) ) + fi + +} && complete -F _clone_member clone_member +have sync_members && _sync_members() { - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - case "$prev" in - -@(w|g|d|--welcome-msg=|-goodbye-msg|-digest=)) - COMPREPLY=( $( compgen -W 'y n' -- $cur) ) - return 0 - ;; - -@(d|-file)) - _filedir - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--no-change -n --welcome-msg= -w \ - --goodbye-msg= -g --digest= -d --notifyadmin= -a \ - -f --file -h --help' -- $cur ) ) - else - _mailman_lists - fi - -} + local cur prev split=false + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + _split_longopt && split=true + + case "$prev" in + -@(w|g|d|--welcome-msg|-goodbye-msg|-digest)) + COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) + return 0 + ;; + -@(d|-file)) + _filedir + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--no-change -n --welcome-msg -w \ + --goodbye-msg -g --digest -d --notifyadmin -a -f --file -h --help' \ + -- "$cur" ) ) + else + _mailman_lists + fi + +} && complete -F _sync_members sync_members -_list_lists() -{ - local cur - - COMPREPLY=() - cur=`_get_cword` - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a --advertised \ - --virtual-host-overview= -V -b --bare \ - -h --help' -- $cur ) ) - fi - -} -complete -F _list_lists list_lists - +have unshunt && _unshunt() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-h --help' -- $cur ) ) - else - _filedir -d - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-h --help' -- "$cur" ) ) + else + _filedir -d + fi -} +} && complete -F _unshunt unshunt +have list_admins && _list_admins() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all-vhost= -v \ - --all -a -h --help' -- $cur ) ) - else - _mailman_lists - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--all-vhost -v --all -a -h --help' \ + -- "$cur" ) ) + else + _mailman_lists + fi -} +} && complete -F _list_admins list_admins +have list_owners && _list_owners() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-w --with-listnames \ - -m --moderators -h --help' -- $cur ) ) - else - _mailman_lists - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-w --with-listnames -m --moderators -h \ + --help' -- "$cur" ) ) + else + _mailman_lists + fi -} +} && complete -F _list_owners list_owners +have list_members && _list_members() { - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - case "$prev" in - -@(o|-output)) - _filedir - return 0 - ;; - -@(d|-digest=)) - COMPREPLY=( $( compgen -W 'mime plain' -- $cur) ) - return 0 - ;; - -@(n|-nomail=)) - COMPREPLY=( $( compgen -W 'byadmin byuser bybounce unknown' -- $cur) ) - return 0 - ;; - esac - - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--output -o --regular -r \ - --digest= -d --nomail= -n --fullnames -f \ - --preserve -p -h --help' -- $cur ) ) - else - _mailman_lists - fi - -} + local cur prev split=false + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + _split_longopt && split=true + + case "$prev" in + -@(o|-output)) + _filedir + return 0 + ;; + -@(d|-digest)) + COMPREPLY=( $( compgen -W 'mime plain' -- "$cur") ) + return 0 + ;; + -@(n|-nomail)) + COMPREPLY=( $( compgen -W 'byadmin byuser bybounce unknown' \ + -- "$cur") ) + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--output -o --regular -r --digest -d \ + --nomail -n --fullnames -f --preserve -p -h --help' -- "$cur" ) ) + else + _mailman_lists + fi + +} && complete -F _list_members list_members +have change_pw && _change_pw() { - local cur prev + local cur prev split=false - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} - case "$prev" in - -@(l|-listname=)) - _mailman_lists - return 0 - ;; - esac + _split_longopt && split=true - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-a --all --domain= -d --listname= -l \ - --password= -p --quiet -q -h --help' -- $cur ) ) - fi + case "$prev" in + -@(l|-listname)) + _mailman_lists + return 0 + ;; + esac -} + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a --all --domain -d --listname -l \ + --password -p --quiet -q -h --help' -- "$cur" ) ) + fi + +} && complete -F _change_pw change_pw +have withlist && _withlist() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-l --lock -i --interactive \ - -r --run -a --all -q --quiet -h --help' -- $cur ) ) - else - _mailman_lists - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-l --lock -i --interactive \ + -r --run -a --all -q --quiet -h --help' -- "$cur" ) ) + else + _mailman_lists + fi -} +} && complete -F _withlist withlist +have newlist && _newlist() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-l --language -q --quiet -h --help' -- $cur ) ) - else - _mailman_lists - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-l --language -q --quiet -h --help' \ + -- "$cur" ) ) + else + _mailman_lists + fi -} +} && complete -F _newlist newlist +have rmlist && _rmlist() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--archives -a \ - -h --help' -- $cur ) ) - else - _mailman_lists - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--archives -a -h --help' -- "$cur" ) ) + else + _mailman_lists + fi -} +} && complete -F _rmlist rmlist +have config_list && _config_list() { - local cur prev + local cur prev split=false - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} - case "$prev" in - -@(i|o|-inputfile|-outputfile)) - _filedir - return 0 - ;; - esac + _split_longopt && split=true + case "$prev" in + -@(i|o|-inputfile|-outputfile)) + _filedir + return 0 + ;; + esac - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--inputfile -i --outputfile -o \ - --checkonly -c --verbose -v -h --help' -- $cur ) ) - else - _mailman_lists - fi + $split && return 0 -} + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--inputfile -i --outputfile -o \ + --checkonly -c --verbose -v -h --help' -- "$cur" ) ) + else + _mailman_lists + fi + +} && complete -F _config_list $filenames config_list +have arch && _arch() { - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - case "$prev" in - -@(w|g|d|--welcome-msg=|-goodbye-msg|-digest=)) - COMPREPLY=( $( compgen -W 'y n' -- $cur) ) - return 0 - ;; - -@(d|-file)) - _filedir - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--wipe -s --start= -e --end= \ - -q --quiet -h --help' -- $cur ) ) - else - args=$COMP_CWORD - for (( i=1; i < COMP_CWORD; i++ )); do - if [[ "${COMP_WORDS[i]}" == -* ]]; then - args=$(($args-1)) - fi - done - case $args in - 1) - _mailman_lists - ;; - 2) - _filedir - ;; - esac - fi - -} + local cur prev split=false + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + _split_longopt && split=true + + case "$prev" in + -@(w|g|d|--welcome-msg|-goodbye-msg|-digest)) + COMPREPLY=( $( compgen -W 'y n' -- "$cur") ) + return 0 + ;; + -@(d|-file)) + _filedir + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--wipe -s --start -e --end -q --quiet -h \ + --help' -- "$cur" ) ) + else + args=$COMP_CWORD + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == -* ]]; then + args=$(($args-1)) + fi + done + case $args in + 1) + _mailman_lists + ;; + 2) + _filedir + ;; + esac + fi + +} && complete -F _arch $filenames arch +have cleanarch && _cleanarch() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-s --status -n --dry-run \ - -q --quiet -h --help' -- $cur ) ) - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-s --status -n --dry-run -q --quiet -h \ + --help' -- "$cur" ) ) + fi -} +} && complete -F _cleanarch cleanarch +have inject && _inject() { - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - case "$prev" in - -@(l|-listname=)) - _mailman_lists - return 0 - ;; - esac - - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-l --listname= -q --queue= \ - -h --help' -- $cur ) ) - else - _filedir - fi + local cur prev split=false -} + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + _split_longopt && split=true + + case "$prev" in + -@(l|-listname)) + _mailman_lists + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-l --listname -q --queue -h --help' \ + -- "$cur" ) ) + else + _filedir + fi + +} && complete -F _inject $filenames inject +have dumpdb && _dumpdb() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--marshal -m --pickle -p --noprint -n -h --help' -- $cur ) ) - else - _filedir - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--marshal -m --pickle -p --noprint -n -h \ + --help' -- "$cur" ) ) + else + _filedir + fi -} +} && complete -F _dumpdb $filenames dumpdb +have check_db && _check_db() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '--all -a --verbose -v \ - -h --help' -- $cur ) ) - else - _mailman_lists - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--all -a --verbose -v -h --help' \ + -- "$cur" ) ) + else + _mailman_lists + fi -} +} && complete -F _check_db check_db +have check_perms && _check_perms() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-f -v -h' -- $cur ) ) - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-f -v -h' -- "$cur" ) ) + fi -} +} && complete -F _check_perms check_perms +have genaliases && _genaliases() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-q --quiet -h --help' -- $cur ) ) - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-q --quiet -h --help' -- "$cur" ) ) + fi -} +} && complete -F _genaliases genaliases +have mmsitepass && _mmsitepass() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-c --listcreator -h --help' -- $cur ) ) - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-c --listcreator -h --help' -- "$cur" ) ) + fi -} +} && complete -F _mmsitepass mmsitepass +have qrunner && _qrunner() { - local cur + local cur prev - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-r --runner= --once -o \ - -l --list -v --verbose -s --subproc -h --help' -- $cur ) ) - fi + _split_longopt && return 0 -} + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r --runner --once -o \ + -l --list -v --verbose -s --subproc -h --help' -- "$cur" ) ) + fi + +} && complete -F _qrunner qrunner +have mailmanctl && _mailmanctl() { - local cur + local cur - COMPREPLY=() - cur=`_get_cword` + COMPREPLY=() + cur=`_get_cword` - if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-n --no-restart -u --run-as-user \ - -s --stale-lock-cleanup --quiet -q -h --help' -- $cur ) ) - else - COMPREPLY=( $( compgen -W 'start stop restart reopen' -- $cur ) ) - fi + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-n --no-restart -u --run-as-user \ + -s --stale-lock-cleanup --quiet -q -h --help' -- "$cur" ) ) + else + COMPREPLY=( $( compgen -W 'start stop restart reopen' -- "$cur" ) ) + fi -} +} && complete -F _mailmanctl mailmanctl + +# 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 |