summaryrefslogtreecommitdiff
path: root/mail/qmail-qfilter/files/qmail-qfilter-queue.sh
diff options
context:
space:
mode:
Diffstat (limited to 'mail/qmail-qfilter/files/qmail-qfilter-queue.sh')
-rw-r--r--mail/qmail-qfilter/files/qmail-qfilter-queue.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/mail/qmail-qfilter/files/qmail-qfilter-queue.sh b/mail/qmail-qfilter/files/qmail-qfilter-queue.sh
new file mode 100644
index 00000000000..9abbe7175fe
--- /dev/null
+++ b/mail/qmail-qfilter/files/qmail-qfilter-queue.sh
@@ -0,0 +1,28 @@
+#!@SH@
+#
+# Wrapper for qmail-queue that filters messages before injecting
+# into the queue.
+#
+# Using this wrapper, executable filters:
+# * Must be placed in @PKG_SYSCONFDIR@
+# * Must have filenames matching "qfilter-*"
+# * Will be executed with no arguments
+# * Will be executed in sort(1) order
+
+possible_qfilters=`@ECHO@ @PKG_SYSCONFDIR@/qfilter-* | @SORT@`
+qfilters=""
+
+if [ "${possible_qfilters}" = "@PKG_SYSCONFDIR@/qfilter-*" ]; then
+ qfilters="@CAT@"
+else
+ for qfilter in ${possible_qfilters}; do
+ if [ -x "${qfilter}" ]; then
+ qfilters="${qfilters} ${qfilter}"
+ fi
+ done
+ [ -z "${qfilters}" ] && qfilters="@CAT@"
+fi
+
+qfilter_cmd="@PREFIX@/bin/qmail-qfilter `@ECHO@ ${qfilters} | @SED@ -e 's| | -- |g'`"
+
+exec ${qfilter_cmd}