534 lines
8.2 KiB
Bash
534 lines
8.2 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>
|
|
|
|
_mailman_lists()
|
|
{
|
|
COMPREPLY=( $( list_lists -b | grep "^$cur") )
|
|
}
|
|
|
|
_add_members()
|
|
{
|
|
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
|
|
|
|
}
|
|
complete -F _add_members add_members
|
|
|
|
_remove_members()
|
|
{
|
|
|
|
local cur prev
|
|
|
|
COMPREPLY=()
|
|
cur=`_get_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=`_get_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=`_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= --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=`_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
|
|
|
|
}
|
|
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
|
|
|
|
_unshunt()
|
|
{
|
|
local cur
|
|
|
|
COMPREPLY=()
|
|
cur=`_get_cword`
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '-h --help' -- $cur ) )
|
|
else
|
|
_filedir -d
|
|
fi
|
|
|
|
}
|
|
complete -F _unshunt unshunt
|
|
|
|
_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
|
|
|
|
_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
|
|
|
|
_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
|
|
|
|
}
|
|
complete -F _list_members list_members
|
|
|
|
_change_pw()
|
|
{
|
|
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 '-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=`_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
|
|
|
|
_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
|
|
|
|
_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
|
|
|
|
_config_list()
|
|
{
|
|
local cur prev
|
|
|
|
COMPREPLY=()
|
|
cur=`_get_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=`_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
|
|
|
|
}
|
|
complete -F _arch $filenames arch
|
|
|
|
_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
|
|
|
|
_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
|
|
|
|
}
|
|
complete -F _inject $filenames inject
|
|
|
|
_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
|
|
|
|
_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
|
|
|
|
_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
|
|
|
|
_genaliases()
|
|
{
|
|
local cur
|
|
|
|
COMPREPLY=()
|
|
cur=`_get_cword`
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '-q --quiet -h --help' -- $cur ) )
|
|
fi
|
|
|
|
}
|
|
complete -F _genaliases genaliases
|
|
|
|
_mmsitepass()
|
|
{
|
|
local cur
|
|
|
|
COMPREPLY=()
|
|
cur=`_get_cword`
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '-c --listcreator -h --help' -- $cur ) )
|
|
fi
|
|
|
|
}
|
|
complete -F _mmsitepass mmsitepass
|
|
|
|
_qrunner()
|
|
{
|
|
local cur
|
|
|
|
COMPREPLY=()
|
|
cur=`_get_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=`_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
|