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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
#!/bin/sh
#
# junkfilter
# a junk email filter system for procmail
# Copyright 1997-2001 Gregory Sutter <gsutter@zer0.org>
#
# $Id: jf,v 1.13 2001/05/28 11:03:41 gsutter Exp $
#
# Please read the file "README" and the page
# http://junkfilter.zer0.org/ before using junkfilter.
#
# jf -- unified junkfilter management
if [ ! $JFDIR ]; then
JFDIR=/usr/local/etc/junkfilter
if [ -d $JFDIR ]; then
echo "Error: please set \$JFDIR to the location of junkfilter."
exit 66
fi
fi
if [ x$1 = xchk ]; then
cat $JFDIR/domains/* | perl -pe 'y/[A-Z]/[a-z]/' | grep $2
elif [ x$1 = xadd -o x$1 = xcta ]; then
cat $JFDIR/domains/* | perl -pe 'y/[A-Z]/[a-z]/' | egrep -q "^$2\$" && echo "$2 already in domains list" || echo $2 >> $JFDIR/domains/general
elif [ x$1 = xbuild ]; then
if [ x$2 = xdomains ]; then
cat $JFDIR/domains/[a-z]* |\
perl -pe 's/[ ]+//g; y/[A-Z]/[a-z]/; s/
//g' |\
egrep -v '^$' |\
sort | uniq |\
perl -p0e 's/\012(.)/\|$1/g; s/\./\\./g; s/\015//g; s/\|{2,}/\|/g' > $JFDIR/jf-domains
echo "Done. $2 built."
elif [ x$2 = xaddresses ]; then
cat $JFDIR/addresses | sort |\
perl -p0e 's/\012(.)/\|$1/g; s/\015//g; s/\|{2,}/\|/g' > $JFDIR/jf-addresses
echo "Done. $2 built."
elif [ x$2 = xip ]; then
cat $JFDIR/ip | sort |\
perl -p0e 's/\012(.)/\|$1/g; s/\./\\./g; s/\015//g; s/\|{2,}/\|/g' > $JFDIR/jf-ip
echo "Done. $2 built."
elif [ x$2 = xbodychk ]; then
cat $JFDIR/bodychk | sort |\
perl -p0e 's/\012(.)/\|$1/g; s/\015//g; s/\|{2,}/\|/g' > $JFDIR/jf-bodychk
echo "Done. $2 built."
elif [ x$2 = xdialups ]; then
cat $JFDIR/dialups | sort |\
perl -p0e 's/\012(.)/\|$1/g; s/\./\\./g; s/\015//g; s/\|{2,}/\|/g' > $JFDIR/jf-dialups
echo "Done. $2 built."
elif [ x$2 = xheaders ]; then
cat $JFDIR/headers | sort |\
perl -p0e 's/\012(.)/\|$1/g; s/\015//g; s/\|{2,}/\|/g' > $JFDIR/jf-headers
echo "Done. $2 built."
elif [ x$2 = xwhite ]; then
cat $JFDIR/white | sort |\
perl -p0e 's/\012(.)/\|$1/g; s/\015//g; s/\|{2,}/\|/g' > $JFDIR/jf-white
echo "Done. $2 built."
elif [ x$2 = xall ]; then
jf build addresses
jf build bodychk
jf build dialups
jf build domains
jf build headers
jf build ip
jf build white
echo "Done. $2 built."
elif [ x = x ]; then
echo "I can build 'addresses', 'bodychk', 'dialups', 'domains',"
echo "'headers', 'ip', 'white', 'all'"
exit 1
fi
elif [ x$1 = xget ]; then
cat $JFDIR/domains/gulf-blocks >> $JFDIR/more/gulf-blocks-old
sort < $JFDIR/more/gulf-blocks-old > $JFDIR/more/gulf-blocks-tmp
uniq < $JFDIR/more/gulf-blocks-tmp > $JFDIR/more/gulf-blocks-old
lynx -dump -source ftp://ftp.gulf.net/pub/docs/domains.txt > $JFDIR/domains/gulf-blocks
elif [ x$1 = xrel ]; then
if [ ! x$3 = x ]; then
JFELOC=$3
if [ ! -d $JFELOC ]; then
echo "Usage: $0 rel <version> <package location>"
exit 1
fi
else
echo "Usage: $0 rel <version> <package location>"
exit 1
fi
if [ ! x$2 = x ]; then
JFEVER=$2
if [ ! -d $JFELOC/$JFEVER ]; then
mkdir $JFELOC/$JFEVER
else
echo "That version already exists!"
exit 1
fi
else
echo "Usage: $0 rel <version> <package location>"
exit 1
fi
JFEDIR=$JFELOC/$JFEVER
TMPDIR=/tmp
rm $JFEDIR/*
# jf get
jf build all
mkdir $TMPDIR/junkfilter
cp -p $JFDIR/* $TMPDIR/junkfilter
mkdir $TMPDIR/junkfilter/domains
cp -p $JFDIR/domains/* $TMPDIR/junkfilter/domains
cd $TMPDIR
tar -cf - junkfilter | gzip -9 > $JFEDIR/junkfilter-$JFEVER.tar.gz
mv $TMPDIR/junkfilter/* $JFEDIR
rmdir $TMPDIR/junkfilter
rm $JFELOC/current
rm $JFELOC/junkfilter.tar.gz
cd $JFELOC
ln -s $JFEVER/junkfilter-$JFEVER.tar.gz junkfilter.tar.gz
ln -s $JFEVER current
echo "Done. New junkfilter release in $JFEDIR."
elif [ x$1 = x ]; then
echo "Command syntax: jf <command> <option>"
echo "commands: add [domain], chk [domain], cta [domain], build [option],"
echo " get (new gulf-blocks domains file), rel (build release)"
echo "options: addresses, domains, bodychk, dialups, ip, headers, white"
fi
#eof
|