Преглед на файлове

Command to ignore incoming email

Bob Mottram преди 10 години
родител
ревизия
a505df798d
променени са 4 файла, в които са добавени 108 реда и са изтрити 0 реда
  1. 4
    0
      Makefile
  2. 1
    0
      debian/source/include-binaries
  3. BIN
      man/freedombone-ignore.1.gz
  4. 103
    0
      src/freedombone-ignore

+ 4
- 0
Makefile Целия файл

@@ -22,6 +22,7 @@ install:
22 22
 	install -m 755 src/${APP}-renew-cert ${DESTDIR}${PREFIX}/bin
23 23
 	install -m 755 src/${APP}-rmlist ${DESTDIR}${PREFIX}/bin
24 24
 	install -m 755 src/${APP}-rmemail ${DESTDIR}${PREFIX}/bin
25
+	install -m 755 src/${APP}-ignore ${DESTDIR}${PREFIX}/bin
25 26
 	mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/man/man1
26 27
 	install -m 644 man/${APP}.1.gz ${DESTDIR}${PREFIX}/share/man/man1
27 28
 	install -m 644 man/${APP}-prep.1.gz ${DESTDIR}${PREFIX}/share/man/man1
@@ -35,6 +36,7 @@ install:
35 36
 	install -m 644 man/${APP}-renew-cert.1.gz ${DESTDIR}${PREFIX}/share/man/man1
36 37
 	install -m 644 man/${APP}-rmlist.1.gz ${DESTDIR}${PREFIX}/share/man/man1
37 38
 	install -m 644 man/${APP}-rmemail.1.gz ${DESTDIR}${PREFIX}/share/man/man1
39
+	install -m 644 man/${APP}-ignore.1.gz ${DESTDIR}${PREFIX}/share/man/man1
38 40
 uninstall:
39 41
 	rm -f ${PREFIX}/share/man/man1/${APP}.1.gz
40 42
 	rm -f ${PREFIX}/share/man/man1/${APP}-prep.1.gz
@@ -48,6 +50,7 @@ uninstall:
48 50
 	rm -f ${PREFIX}/share/man/man1/${APP}-renew-cert.1.gz
49 51
 	rm -f ${PREFIX}/share/man/man1/${APP}-rmlist.1.gz
50 52
 	rm -f ${PREFIX}/share/man/man1/${APP}-rmemail.1.gz
53
+	rm -f ${PREFIX}/share/man/man1/${APP}-ignore.1.gz
51 54
 	rm -rf ${PREFIX}/share/${APP}
52 55
 	rm -f ${PREFIX}/bin/${APP}
53 56
 	rm -f ${PREFIX}/bin/${APP}-prep
@@ -60,6 +63,7 @@ uninstall:
60 63
 	rm -f ${PREFIX}/bin/${APP}-addemail
61 64
 	rm -f ${PREFIX}/bin/${APP}-renew-cert
62 65
 	rm -f ${PREFIX}/bin/${APP}-rmlist
66
+	rm -f ${PREFIX}/bin/${APP}-ignore
63 67
 clean:
64 68
 	rm -f \#* \.#* debian/*.substvars debian/*.log
65 69
 	rm -fr deb.* debian/${APP}

+ 1
- 0
debian/source/include-binaries Целия файл

@@ -10,3 +10,4 @@ man/freedombone-addemail.1.gz
10 10
 man/freedombone-renew-cert.1.gz
11 11
 man/freedombone-rmlist.1.gz
12 12
 man/freedombone-rmemail.1.gz
13
+man/freedombone-ignore.1.gz

BIN
man/freedombone-ignore.1.gz Целия файл


+ 103
- 0
src/freedombone-ignore Целия файл

@@ -0,0 +1,103 @@
1
+#!/bin/bash
2
+
3
+# Adds an email ignore rule for either an email address
4
+# or text in the subject line
5
+
6
+# License
7
+# =======
8
+#
9
+# Copyright (C) 2015 Bob Mottram <bob@robotics.uk.to>
10
+#
11
+# This program is free software: you can redistribute it and/or modify
12
+# it under the terms of the GNU General Public License as published by
13
+# the Free Software Foundation, either version 3 of the License, or
14
+# (at your option) any later version.
15
+#
16
+# This program is distributed in the hope that it will be useful,
17
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+# GNU General Public License for more details.
20
+#
21
+# You should have received a copy of the GNU General Public License
22
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
23
+
24
+MYUSERNAME=$USER
25
+EMAIL_ADDRESS=
26
+SUBJECT_TEXT=
27
+
28
+function show_help {
29
+    echo ''
30
+    echo 'freedombone-ignore -u [username] -e [mail address] -t [text in subject line]'
31
+    echo ''
32
+	exit 0
33
+}
34
+
35
+while [[ $# > 1 ]]
36
+do
37
+key="$1"
38
+
39
+case $key in
40
+    -h|--help)
41
+    show_help
42
+    ;;
43
+    -u|--user)
44
+    shift
45
+    MYUSERNAME="$1"
46
+    ;;
47
+    -e|--email)
48
+    shift
49
+    EMAIL_ADDRESS="$1"
50
+    ;;
51
+    -t|--text)
52
+    shift
53
+    SUBJECT_TEXT="$1"
54
+    ;;
55
+    *)
56
+    # unknown option
57
+    ;;
58
+esac
59
+shift
60
+done
61
+
62
+if ! [[ $MYUSERNAME && $EMAIL_ADDRESS ]]; then
63
+    if ! [[ $MYUSERNAME && $SUBJECT_TEXT ]]; then
64
+        show_help
65
+	fi
66
+fi
67
+
68
+MUTTRC=/home/$MYUSERNAME/.muttrc
69
+PM=/home/$MYUSERNAME/.procmailrc
70
+
71
+# Ignore if subject line contains text
72
+if [ $SUBJECT_TEXT ]; then
73
+    if ! grep -q "Ignore rule for $SUBJECT_TEXT" $PM; then
74
+        echo "" >> $PM
75
+        echo "# Ignore rule for $SUBJECT_TEXT" >> $PM
76
+        echo ":0" >> $PM
77
+        echo "  * ^Subject:.*$SUBJECT_TEXT" >> $PM
78
+        echo "/dev/null" >> $PM
79
+        echo "# End of ignore rule" >> $PM
80
+        chown $MYUSERNAME:$MYUSERNAME $PM
81
+    fi
82
+fi
83
+
84
+# ignore an email address
85
+if [ $EMAIL_ADDRESS ]; then
86
+    if ! grep -q "Ignore rule for $EMAIL_ADDRESS" $PM; then
87
+        echo "" >> $PM
88
+        echo "# Ignore rule for $EMAIL_ADDRESS" >> $PM
89
+        echo ":0" >> $PM
90
+        echo "  * ^From: $EMAIL_ADDRESS" >> $PM
91
+        echo "/dev/null" >> $PM
92
+        echo "# End of ignore rule" >> $PM
93
+        chown $MYUSERNAME:$MYUSERNAME $PM
94
+    fi
95
+fi
96
+
97
+PROCMAILLOG=/home/$MYUSERNAME/log
98
+if [ ! -d $PROCMAILLOG ]; then
99
+    mkdir $PROCMAILLOG
100
+    chown -R $MYUSERNAME:$MYUSERNAME $PROCMAILLOG
101
+fi
102
+
103
+exit 0