#! /bin/sh
# Establish a mail<->news gateway
# Usage: newsmailgate mailing-list newsgroup
# Assumptions:
#   1. Linux INN-1.7.2
#   2. Being run as the "news" user.

HOST=`hostname`
MLDIR=lists

if [ $# != 2 ]; then
   echo "Usage: create-newsmailgate mailing-list newsgroup"
   exit 1;
fi

ML=$1
NG=$2

# Go home
cd
MYHOME=`pwd`

if [ ! -d $MLDIR ]; then
   mkdir $MLDIR
fi

if [ ! -f .qmail-nobody ]; then
   echo "# Throw away any mail sent to this address" > .qmail-nobody
fi

# Create moderated newsgroup and make moderated posts go to mailing list.
/usr/lib/news/bin/ctlinnd newgroup $NG m
(echo "$NG:$USER-$ML@$HOST"; cat moderators) > moderators.new && \
   mv moderators.new moderators
# Modify newsfeeds file.
(cat newsfeeds - > newsfeeds.new << EOF

# BEGIN: $ML mailing list
$HOST/$HOST:\\
	!*,$NG\\
	/world\\
	:Tp:/var/qmail/bin/qmail-inject -f $USER-nobody $USER-$ML@$HOST
# END: $ML mailing list
EOF
) && mv newsfeeds.new newsfeeds

# Create Mailing list.
ezmlm-make -AIt -5 $USER@$HOST $MYHOME/$MLDIR/$ML .qmail-$ML $USER-$ML $HOST
# Add "Approved:" header
echo "Approved: $USER-$ML@$HOST" >> $MYHOME/$MLDIR/$ML/headeradd
# Add posting alias.
echo "| $MYHOME/postlistmail $NG" > .qmail-$ML-post
# Added news posting subscription.
ezmlm-sub $MYHOME/$MLDIR/$ML $USER-$ML-post@$HOST

# Now reload INN control files
/usr/lib/news/bin/ctlinnd reload all "Mailing List"

exit 0
