#!/bin/sh
# $Id$
#
-# Sending via
+# Sending by
+MAILER='/usr/sbin/sendmail'
+# MAILER='/usr/bin/msmtp'
+# Sending via
+VIA="SENDMAIL"
#VIA="localhost"
-VIA="/usr/bin/sendmail"
+VIA_ARGS=""
+#VIA_ARGS="some additional flags"
+# e.g. for msmtp:
+# VIA_ARGS='-a gmail'
#
# DISTFILES EMAIL
-DMAIL="distfiles@pld-ppc.org"
+DMAIL="distfiles@pld-linux.org"
#
# CVS LOGIN or fill it by hand :)
-LOGIN=`cat CVS/Root | awk -F: '{ print $3; }' | perl -pi -e "s/@.+//"`
+tmp=$(awk -F: '{ print $3; }' CVS/Root)
+LOGIN=${tmp%@*}
#LOGIN="djrzulf"
#
# HOST
HOST=`hostname -f`
+#HOST="knycz.net"
#
# functions
usage()
{
- echo "\
-Usage: fetchsrc_request file.spec [BRANCH]
-"
+ echo "Usage: fetchsrc_request file.spec [BRANCH]"
+ echo
}
#------------------
# main()
if [ "$#" = 0 ]; then
- usage;
+ usage
exit 1
fi
-if [ "$2" != 0 ]; then
- BRANCH=`cat CVS/Entries | grep $1 | awk -F/ '{print $6;}' | cut -c 2-`
+if [ "$LOGIN" == "cvs" ]; then
+ echo "Use fetchsrc_request from your R/W CVS tree or set LOGIN by hand" >&2
+ exit 1
+fi
+if [ "$2" != "" ]; then
+ BRANCH="$2"
else
BRANCH="HEAD"
fi
+SPEC="$(basename $1)"
+if [[ "$SPEC" != *.spec ]]; then
+ SPEC="$SPEC.spec"
+fi
-MAIL="To: $DMAIL\nFrom: $LOGIN <$LOGIN@$HOST>\nSubject: cvs to df notify\nX-CVS-Module: SPECS\nX-distfiles-request: yes\nX-Login: $LOGIN\nX-Spec: $1\nX-Branch: $BRANCH\nX-Flags: cvs-notify\n.\n
-"
+if [ "$VIA" = "SENDMAIL" ]; then
+ echo >&2 "Requesting $SPEC:$BRANCH via $MAILER ${VIA_ARGS:+ ($VIA_ARGS)}"
+ cat <<EOF | "$MAILER" -t -i $VIA_ARGS
+To: $DMAIL
+From: $LOGIN <$LOGIN@$HOST>
+Subject: fetchsrc_request notify
+X-CVS-Module: SPECS
+X-distfiles-request: yes
+X-Login: $LOGIN
+X-Spec: $SPEC
+X-Branch: $BRANCH
+X-Flags: force-reply
-echo $MAIL
+.
+EOF
+else
+ echo >&2 "Requesting $SPEC:$BRANCH via SMTP ($VIA:25)"
+ cat <<EOF | /usr/bin/nc $VIA 25 > /dev/null
+EHLO $HOST
+MAIL FROM: $LOGIN <$LOGIN@$HOST>
+RCPT TO: $DMAIL
+DATA
+To: $DMAIL
+Subject: fetchsrc_request notify
+X-CVS-Module: SPECS
+X-distfiles-request: yes
+X-Login: $LOGIN
+X-Spec: $SPEC
+X-Branch: $BRANCH
+X-Flags: force-reply
+
+.
+QUIT
+EOF
+fi