# Mailman completion by Guillaume Rousse # # $Id: mailman,v 1.1 2004/03/30 23:05:34 ianmacd Exp $ # _mailman_lists() { COMPREPLY=( $( list_lists -b | grep "^$cur") ) } _add_members() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_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 } complete -F _add_members add_members _remove_members() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} 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 } complete -F _remove_members remove_members _find_member() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} 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 } complete -F _find_member find_member _clone_member() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_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= --remove -r \ --admin -a --quiet -q --nomodify -n --help -h' -- $cur ) ) fi } complete -F _clone_member clone_member _sync_members() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_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 } complete -F _sync_members sync_members _list_lists() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_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 _unshunt() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-h --help' -- $cur ) ) else _filedir -d fi } complete -F _unshunt unshunt _list_admins() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--all-vhost= -v \ --all -a -h --help' -- $cur ) ) else _mailman_lists fi } complete -F _list_admins list_admins _list_owners() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-w --with-listnames \ -m --moderators -h --help' -- $cur ) ) else _mailman_lists fi } complete -F _list_owners list_owners _list_members() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_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 } complete -F _list_members list_members _change_pw() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} case "$prev" in -@(l|-listname=)) _mailman_lists return 0 ;; esac 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 _withlist() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} 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 _newlist() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-l --language -q --quiet -h --help' -- $cur ) ) else _mailman_lists fi } complete -F _newlist newlist _rmlist() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--archives -a \ -h --help' -- $cur ) ) else _mailman_lists fi } complete -F _rmlist rmlist _config_list() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} 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 } complete -F _config_list $filenames config_list _arch() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_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 } complete -F _arch $filenames arch _cleanarch() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-s --status -n --dry-run \ -q --quiet -h --help' -- $cur ) ) fi } complete -F _cleanarch cleanarch _inject() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_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 } complete -F _inject $filenames inject _dumpdb() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--marshal -m --pickle -p --noprint -n -h --help' -- $cur ) ) else _filedir fi } complete -F _dumpdb $filenames dumpdb _check_db() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--all -a --verbose -v \ -h --help' -- $cur ) ) else _mailman_lists fi } complete -F _check_db check_db _check_perms() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-f -v -h' -- $cur ) ) fi } complete -F _check_perms check_perms _genaliases() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-q --quiet -h --help' -- $cur ) ) fi } complete -F _genaliases genaliases _mmsitepass() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-c --listcreator -h --help' -- $cur ) ) fi } complete -F _mmsitepass mmsitepass _qrunner() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '-r --runner= --once -o \ -l --list -v --verbose -s --subproc -h --help' -- $cur ) ) fi } complete -F _qrunner qrunner _mailmanctl() { local cur COMPREPLY=() cur=${COMP_WORDS[COMP_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 } complete -F _mailmanctl mailmanctl