598 lines
9.4 KiB
Bash

# -*- 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=( $( compgen -W '$( list_lists -b )' -- $cur ) )
}
_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 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
COMPREPLY=()
cur=`_get_cword`
prev=${COMP_WORDS[COMP_CWORD-1]}
_split_longopt && split=true
case "$prev" in
-@(f|-file))
_filedir
return 0
;;
esac
$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
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
$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
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 --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 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
have unshunt &&
_unshunt()
{
local cur
COMPREPLY=()
cur=`_get_cword`
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-h --help' -- $cur ) )
else
_filedir -d
fi
} &&
complete -F _unshunt unshunt
have list_admins &&
_list_admins()
{
local cur
COMPREPLY=()
cur=`_get_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
have list_owners &&
_list_owners()
{
local cur
COMPREPLY=()
cur=`_get_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
have list_members &&
_list_members()
{
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 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 '-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
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
} &&
complete -F _withlist withlist
have newlist &&
_newlist()
{
local cur
COMPREPLY=()
cur=`_get_cword`
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
COMPREPLY=()
cur=`_get_cword`
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 split=false
COMPREPLY=()
cur=`_get_cword`
prev=${COMP_WORDS[COMP_CWORD-1]}
_split_longopt && split=true
case "$prev" in
-@(i|o|-inputfile|-outputfile))
_filedir
return 0
;;
esac
$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 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
COMPREPLY=()
cur=`_get_cword`
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 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
COMPREPLY=()
cur=`_get_cword`
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
COMPREPLY=()
cur=`_get_cword`
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
COMPREPLY=()
cur=`_get_cword`
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-f -v -h' -- $cur ) )
fi
} &&
complete -F _check_perms check_perms
have genaliases &&
_genaliases()
{
local cur
COMPREPLY=()
cur=`_get_cword`
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-q --quiet -h --help' -- $cur ) )
fi
} &&
complete -F _genaliases genaliases
have mmsitepass &&
_mmsitepass()
{
local cur
COMPREPLY=()
cur=`_get_cword`
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '-c --listcreator -h --help' -- $cur ) )
fi
} &&
complete -F _mmsitepass mmsitepass
have qrunner &&
_qrunner()
{
local cur prev
COMPREPLY=()
cur=`_get_cword`
prev=${COMP_WORDS[COMP_CWORD-1]}
_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
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
} &&
complete -F _mailmanctl mailmanctl