initial commit v1.0
This commit is contained in:
127
ezmlm-manage.sh
Executable file
127
ezmlm-manage.sh
Executable file
@@ -0,0 +1,127 @@
|
||||
#!/bin/bash
|
||||
# Interactive script to manage the most used functions of ezmlm-idx. Tested on an uberspace.de account.
|
||||
# Written by Max Mehl <mail@mehl.mx>
|
||||
|
||||
# echo "!!! You should have root privileges to use this program !!!"
|
||||
|
||||
if [ -z "$1" -o "$1" = "--help" ]; then
|
||||
echo "Usage: $0 <name of list> <directory of list> <.qmail file of list> <domain of list>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LISTNAME=$1
|
||||
LISTDIR=$2
|
||||
LISTQMAIL=$3
|
||||
LISTDOM=$4
|
||||
|
||||
echo "> Name of list: $LISTNAME"
|
||||
echo "> Directory of list: $LISTDIR"
|
||||
echo "> .qmail file of list: $LISTQMAIL"
|
||||
echo "> Domain of list: $LISTDOM"
|
||||
echo "Correct? Enter to continue, Ctrl+C to quit"
|
||||
read END
|
||||
|
||||
helptext() {
|
||||
echo "Available options:"
|
||||
echo " +-------------------------------------+"
|
||||
echo " | h - Print this help |"
|
||||
echo " | q - Quit |"
|
||||
echo " | e - Edit ezmlm options |"
|
||||
echo " | s - Add subscriber |"
|
||||
echo " | S - Delete subscriber |"
|
||||
echo " | l - List all subscribers/mods/owner |"
|
||||
echo " | o - List/Set owner |"
|
||||
echo " | m - Add moderator |"
|
||||
echo " | c - Create ezmlm list |"
|
||||
echo " | d - Delete ezmlm list |"
|
||||
echo "+--------------------------------------+"
|
||||
}
|
||||
helptext
|
||||
|
||||
while :
|
||||
do
|
||||
#tput clear # Schirm loeschen und Menuetext ausgeben
|
||||
|
||||
echo -n "What to do? h for help: "
|
||||
read INPUT
|
||||
case $INPUT in
|
||||
h) helptext
|
||||
echo "";;
|
||||
q) echo "Bye!" && exit 1
|
||||
echo "";;
|
||||
e) read -p "Please type the desired parameters and arguments. man ezmlm-make for full list of options: " PARS
|
||||
ezmlm-make -+ $PARS $LISTDIR $LISTQMAIL $LISTNAME $LISTDOM
|
||||
unset PARS
|
||||
echo "";;
|
||||
s) read -p "Email-address(es) of subscriber(s) to add (if multiple addresses, use space to separate): " SUBMAIL
|
||||
ezmlm-sub $LISTDIR $SUBMAIL
|
||||
echo "Added $SUBMAIL to $LISTNAME"
|
||||
unset SUBMAIL
|
||||
echo "";;
|
||||
S) read -p "Email-address(es) of subscriber(s) to delete (if multiple addresses, use space to separate): " SUBMAIL
|
||||
ezmlm-unsub $LISTDIR $SUBMAIL
|
||||
echo "Unsubscribed $SUBMAIL from $LISTNAME"
|
||||
unset SUBMAIL
|
||||
echo "";;
|
||||
l) echo "All subscribers:" && ezmlm-list $LISTDIR && echo ""
|
||||
echo "All moderators (ignore T in front of address):" && cat $LISTDIR/mod/subscribers/* && echo -e "\n"
|
||||
echo "Owner:" && cat $LISTDIR/owner
|
||||
echo "";;
|
||||
o) echo "The current owner is: " && cat $LISTDIR/owner
|
||||
read -p "Would you change the list's owner? [y/n]: " YN
|
||||
if [ "$YN" = "y" ]; then
|
||||
read -p "Insert the new owner's email address: " OWNER
|
||||
ezmlm-make -+ -5 $OWNER $LISTDIR $LISTQMAIL $LISTNAME $LISTDOM
|
||||
echo "$OWNER is the new owner of $LISTNAME"
|
||||
else
|
||||
echo "Owner not changed."
|
||||
fi
|
||||
unset YN OWNER
|
||||
echo "";;
|
||||
m) read -p "Insert the new moderator's address: " MOD
|
||||
ezmlm-sub $LISTDIR mod $MOD
|
||||
echo "$MOD is now a moderator of $LISTNAME"
|
||||
unset MOD
|
||||
echo "";;
|
||||
c) echo "The list will be created with following options you gave with the start of the script:"
|
||||
echo "> Name of list: $LISTNAME"
|
||||
echo "> Directory of list: $LISTDIR"
|
||||
echo "> .qmail file of list: $LISTQMAIL"
|
||||
echo "> Domain of list: $LISTDOM"
|
||||
read -p "Are they correct? Type any key to continue, type n to change them separately." YN
|
||||
if [ "$YN" = "n" ]; then
|
||||
read -p "> Name of list: " LISTNAME
|
||||
read -p "> Directory of list: " LISTDIR
|
||||
read -p "> .qmail file of list: " LISTQMAIL
|
||||
read -p "> Domain of list: " LISTDOM
|
||||
else
|
||||
echo "Options not changed."
|
||||
fi
|
||||
|
||||
PARS="-s -u -f -C /etc/ezmlm/de"
|
||||
echo "Following parameters will be used for list's creation: $PARS"
|
||||
read -p "Should they be used? Type any key to continue, type n to change them. man ezmlm-make for all options: " YN
|
||||
if [ "$YN" = "n" ]; then
|
||||
read -p "Insert the disired parameters: " PARS
|
||||
echo "New parameters for list's creation are: $PARS"
|
||||
else
|
||||
echo "Parameters not changed."
|
||||
fi
|
||||
ezmlm-make $PARS $LISTDIR $LISTQMAIL $LISTNAME $LISTDOM
|
||||
echo "$LISTNAME has been successfully created."
|
||||
unset YN PARS
|
||||
echo "";;
|
||||
d) read -p "Should the list $LISTNAME really be deleted? .qmail files and the whole directory will be lost after this action! Type y to delete the list." YN
|
||||
if [ "$YN" = y ]; then
|
||||
rm $LISTQMAIL
|
||||
rm $LISTQMAIL-*
|
||||
rm -rf $LISTDIR
|
||||
else
|
||||
echo "Nothing has been deleted."
|
||||
fi
|
||||
unset YN
|
||||
echo "";;
|
||||
*) echo "Wrong input. Try again!"
|
||||
echo "";;
|
||||
esac
|
||||
done
|
||||
Reference in New Issue
Block a user