summaryrefslogtreecommitdiff
path: root/mail/qmail-run/files/qmail-qfilter-queue.sh
blob: f17db1198f3538ba8a6a821bca8d0c590214fb70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!@SH@
#
# Wrapper for qmail-queue that filters messages before injecting
#   into the queue.
#
# Using this wrapper, executable filters:
# * Must be placed in @PKG_SYSCONFDIR@/filters
# * Must have filenames matching "qfilter-*"
# * Will be executed with no arguments
# * Will be executed in sort(1) order
#
# To use this script to filter messages arriving via SMTP, set the
# QMAILQUEUE environment variable in tcp.smtp like so:
#
# :allow,QMAILQUEUE="${PREFIX}/bin/qmail-qfilter-queue"
#
# Then rebuild the cdb.

possible_qfilters=`@ECHO@ @PKG_SYSCONFDIR@/filters/qfilter-* | @SORT@`
qfilters=""

if [ "${possible_qfilters}" = "@PKG_SYSCONFDIR@/filters/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}