#!/bin/bash # # .---. . . # | | | # |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-. # | | (.-' (.-' ( | ( )| | | | )( )| | (.-' # ' ' --' --' -' - -' ' ' -' -' -' ' - --' # # Freedom in the Cloud # # Adds an email ignore rule for either an email address # or text in the subject line # License # ======= # # Copyright (C) 2015 Bob Mottram # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . MYUSERNAME=$USER EMAIL_ADDRESS= SUBJECT_TEXT= function show_help { echo '' echo 'freedombone-ignore -u [username] -e [mail address] -t [text in subject line]' echo '' exit 0 } while [[ $# > 1 ]] do key="$1" case $key in -h|--help) show_help ;; -u|--user) shift MYUSERNAME="$1" ;; -e|--email) shift EMAIL_ADDRESS="$1" ;; -t|--text) shift SUBJECT_TEXT="$1" ;; *) # unknown option ;; esac shift done if ! [[ $MYUSERNAME && $EMAIL_ADDRESS ]]; then if ! [[ $MYUSERNAME && $SUBJECT_TEXT ]]; then show_help fi fi MUTTRC=/home/$MYUSERNAME/.muttrc PM=/home/$MYUSERNAME/.procmailrc # Ignore if subject line contains text if [ $SUBJECT_TEXT ]; then if ! grep -q "Ignore rule for $SUBJECT_TEXT" $PM; then echo "# Ignore rule for $SUBJECT_TEXT" >> $PM echo ":0" >> $PM echo " * ^Subject:.*$SUBJECT_TEXT" >> $PM echo "/dev/null" >> $PM echo "# End of ignore rule" >> $PM chown $MYUSERNAME:$MYUSERNAME $PM fi fi # ignore an email address if [ $EMAIL_ADDRESS ]; then if ! grep -q "Ignore rule for $EMAIL_ADDRESS" $PM; then echo "# Ignore rule for $EMAIL_ADDRESS" >> $PM echo ":0" >> $PM echo " * ^From: $EMAIL_ADDRESS" >> $PM echo "/dev/null" >> $PM echo "# End of ignore rule" >> $PM chown $MYUSERNAME:$MYUSERNAME $PM fi fi PROCMAILLOG=/home/$MYUSERNAME/log if [ ! -d $PROCMAILLOG ]; then mkdir $PROCMAILLOG chown -R $MYUSERNAME:$MYUSERNAME $PROCMAILLOG fi exit 0