blob: cfc2c201bb9da97b94008bce2f0365247b2de508 [file] [log] [blame]
#!/bin/sh
umask 002
srcdir=`pwd`
tmpdir=$srcdir/tmp/rulesdir.$$
rm -rf $tmpdir;
mkdir -p $tmpdir || exit $?
PERL=${PERL:-perl}
RELDIR=$HOME/public_html/devel
mkdir -p $RELDIR
DISTNAME=Mail-SpamAssassin-rules
make || perl Makefile.PL < /dev/null || exit $?
make || exit $?
make version.env || exit $?
. ./version.env
# "3.1.0-pre2-r202405" should appear as "3.1.0-pre2" after this
VERSION=`echo $FULL_VERSION | perl -pe 's/-(r\d+)$//'`
set -e
$PERL -T ./sa-update.raw --updatedir $tmpdir --debug > $tmpdir/o 2>&1 || true
SVNVER=`perl -ne '/parsed as (\d{5,})$/ and print $1' < $tmpdir/o`
if [ "$SVNVER" = "" ] ; then
echo "cannot find 'parsed as' line in $tmpdir/o"
exit 1
fi
DISTVNAME=$DISTNAME-$VERSION.r$SVNVER
DISTVBASE=$DISTNAME-$VERSION
MIRROR="https://ruleqa.spamassassin.org/updates"
echo $SVNVER
wget -O $tmpdir/rules.tgz $MIRROR/$SVNVER.tar.gz
wget -O $tmpdir/rules.tgz.sha256 $MIRROR/$SVNVER.tar.gz.sha256
wget -O $tmpdir/rules.tgz.asc $MIRROR/$SVNVER.tar.gz.asc
# ensure non-empty
[ -s $tmpdir/rules.tgz ] || exit 3
linttmp=$tmpdir/lintdir
rm -rf $linttmp
mkdir $linttmp
(
cd $linttmp
# check validity of tarball; also extract
gunzip -cd < $tmpdir/rules.tgz | tar xf - || exit $?
)
sitetmp=$tmpdir/sitetmp
rm -rf $sitetmp
mkdir $sitetmp
cp rules/*.pre $sitetmp
# now, ensure the ruleset (entirely as distributed) lints, also.
# use "-p /dev/null" so any user_prefs data is ignored.
./spamassassin -x --configpath=$linttmp --siteconfigpath=$sitetmp \
-p /dev/null --lint \
|| exit $?
awk '{print $1}' $tmpdir/rules.tgz.sha256 > $tmpdir/sha.orig
(
cd $tmpdir
ln rules.tgz $DISTVNAME.tgz
# rebuild the SHA sums
$PERL $srcdir/build/sha256sum.pl $DISTVNAME.tgz > rules.tgz.sha256 || exit $?
$PERL $srcdir/build/sha512sum.pl $DISTVNAME.tgz > rules.tgz.sha512 || exit $?
)
awk '{print $1}' $tmpdir/rules.tgz.sha256 > $tmpdir/sha.new
cmp $tmpdir/sha.orig $tmpdir/sha.new || exit $?
for ext in tgz tgz.sha256 tgz.sha512 tgz.asc ; do
rm -f $RELDIR/$DISTVBASE.*.$ext
if [ -f $tmpdir/rules.$ext ] ; then
mv $tmpdir/rules.$ext $RELDIR/$DISTVNAME.$ext
ls -l $RELDIR/$DISTVNAME.$ext
fi
done
#chgrp -R spamassassin $RELDIR || true
rm -rf $tmpdir