Public and private email folders

This commit is contained in:
Bob Mottram 2016-02-11 12:12:35 +00:00
parent 604b83cfa6
commit f3fdfab0a1
4 changed files with 43 additions and 8 deletions

Binary file not shown.

Binary file not shown.

View File

@ -37,10 +37,11 @@ export TEXTDOMAINDIR="/usr/share/locale"
MYUSERNAME=$USER MYUSERNAME=$USER
EMAILADDRESS= EMAILADDRESS=
GROUP_NAME= GROUP_NAME=
PUBLIC='no'
function show_help { function show_help {
echo '' echo ''
echo $"${PROJECT_NAME}-addemail -u [username] -e [email address] -g [group name]" echo $"${PROJECT_NAME}-addemail -u [username] -e [email address] -g [group name] --public [yes|no]"
echo '' echo ''
exit 0 exit 0
} }
@ -65,6 +66,10 @@ case $key in
shift shift
GROUP_NAME="$1" GROUP_NAME="$1"
;; ;;
-p|--public)
shift
PUBLIC="$1"
;;
*) *)
# unknown option # unknown option
;; ;;
@ -88,15 +93,27 @@ if [ ! -d "$LISTDIR" ]; then
fi fi
chown -R $MYUSERNAME:$MYUSERNAME $LISTDIR chown -R $MYUSERNAME:$MYUSERNAME $LISTDIR
if ! grep -q "Email rule for $EMAILADDRESS -> $GROUP_NAME" $PM; then if ! grep -q "Email rule for $EMAILADDRESS -> $GROUP_NAME" $PM; then
if ! grep -q "\# encrypt" $PM; then if [[ $PUBLIC != "yes" ]]; then
# private emails go after the encryption stage
echo '' >> $PM
echo "# Email rule for $EMAILADDRESS -> $GROUP_NAME" >> $PM echo "# Email rule for $EMAILADDRESS -> $GROUP_NAME" >> $PM
echo ":0" >> $PM echo ":0" >> $PM
echo " * ^From:.*$EMAILADDRESS" >> $PM echo " * ^From:.*$EMAILADDRESS" >> $PM
echo "$LISTDIR/new" >> $PM echo "$LISTDIR/new" >> $PM
echo "# End of rule" >> $PM echo "# End of rule" >> $PM
else else
filter=$(echo "# Email rule for $EMAILADDRESS -> $GROUP_NAME\n:0\n * ^From:.*$EMAILADDRESS\n$LISTDIR/new\n# End of rule\n") # public emails are copied before hte encryption stage
sed -i "/# encrypt/i ${filter}" $PM if ! grep -q '# encrypt' $PM; then
echo '' >> $PM
echo "# Email rule for $EMAILADDRESS -> $GROUP_NAME" >> $PM
echo ":0" >> $PM
echo " * ^From:.*$EMAILADDRESS" >> $PM
echo "$LISTDIR/new" >> $PM
echo "# End of rule" >> $PM
else
filter=$(echo "# Email rule for $EMAILADDRESS -> $GROUP_NAME\n:0\n * ^From:.*$EMAILADDRESS\n$LISTDIR/new\n# End of rule\n")
sed -i "/# encrypt/i ${filter}" $PM
fi
fi fi
chown $MYUSERNAME:$MYUSERNAME $PM chown $MYUSERNAME:$MYUSERNAME $PM
fi fi

View File

@ -38,10 +38,11 @@ MYUSERNAME=$USER
MAILINGLIST= MAILINGLIST=
SUBJECTTAG= SUBJECTTAG=
LIST_ADDRESS= LIST_ADDRESS=
PUBLIC='yes'
function show_help { function show_help {
echo '' echo ''
echo $"${PROJECT_NAME}-addlist -u [username] -l [mailing list name] -s [subject tag] -e [list email address]" echo $"${PROJECT_NAME}-addlist -u [username] -l [mailing list name] -s [subject tag] -e [list email address] --public [yes|no]"
echo '' echo ''
exit 0 exit 0
} }
@ -70,6 +71,10 @@ case $key in
shift shift
LIST_ADDRESS="$1" LIST_ADDRESS="$1"
;; ;;
-p|--public)
shift
PUBLIC="$1"
;;
*) *)
# unknown option # unknown option
;; ;;
@ -100,7 +105,8 @@ fi
chown -R $MYUSERNAME:$MYUSERNAME $LISTDIR chown -R $MYUSERNAME:$MYUSERNAME $LISTDIR
if ! grep -q "Subject:.*()\[$SUBJECTTAG\]" $PM; then if ! grep -q "Subject:.*()\[$SUBJECTTAG\]" $PM; then
if ! grep -q "\# encrypt" $PM; then if [[ $PUBLIC != "yes" ]]; then
# private emails go after the encryption stage
filter=" filter="
# Email rule for $MAILINGLIST subject [$SUBJECTTAG] # Email rule for $MAILINGLIST subject [$SUBJECTTAG]
:0 :0
@ -110,8 +116,20 @@ $LISTDIR/new
" "
echo "$filter" >> $PM echo "$filter" >> $PM
else else
filter=$(echo "# Email rule for $MAILINGLIST subject [$SUBJECTTAG]\n:0\n * ^Subject:.*()\\\[$SUBJECTTAG\\\]\n$LISTDIR/new\n# End of rule\n") # public emails are copied before hte encryption stage
sed -i "/# encrypt/i ${filter}" $PM if ! grep -q '# encrypt' $PM; then
filter="
# Email rule for $MAILINGLIST subject [$SUBJECTTAG]
:0
* ^Subject:.*()\[$SUBJECTTAG\]
$LISTDIR/new
# End of rule
"
echo "$filter" >> $PM
else
filter=$(echo "# Email rule for $MAILINGLIST subject [$SUBJECTTAG]\n:0\n * ^Subject:.*()\\\[$SUBJECTTAG\\\]\n$LISTDIR/new\n# End of rule\n")
sed -i "/# encrypt/i ${filter}" $PM
fi
fi fi
chown $MYUSERNAME:$MYUSERNAME $PM chown $MYUSERNAME:$MYUSERNAME $PM
fi fi