#!/bin/bash #. patchfns 2>/dev/null || #. /usr/lib/patch-scripts/patchfns 2>/dev/null || #. $PATCHSCRIPTS_LIBDIR/patchfns 2>/dev/null || #{ # echo "Impossible to find my library 'patchfns'." # echo "Check your install, or go to the right directory" # exit 1 #} EMAIL_ADDRESS='' extract_addr() { read l read l read l read l a=$(echo "$l" | sed -n -e 's/.*<\(.*@[^>]*\).*/\1/p') echo $a } if [ x"$SMTP_SERVER" = x ] then SMTP_SERVER=localhost:25 fi if [ x"$EMAIL_ADDRESS" = x ] then echo "You must set the EMAIL_ADDRESS environment variable to your email address" exit 1 fi FROM=$EMAIL_ADDRESS TO="" CC="" author() { first_author="" TXT=$2 if [ ! -f $TXT ] then echo $TXT is missing exit 1 fi author="" while read l do # skip the Message-ID: line so we don't send email to the wrong place echo $l reply=$(echo "$l" | grep -i Message-ID:) if [ x"$reply" != x ] then continue fi # if this is the start of the diff, then it's time to stop looking diff=$(echo "$l" | grep "^---") if [ x"$diff" != x ] then echo "diffstart!!!!!" break fi for x in $l do a=$(echo "$x" | sed -n -e 's/.*<\(.*@[^>]*\).*/\1/p') if [ x"$a" != x ] then if [ x"$author" == x ] then author=$a first_author=$a else author="$author $a" fi fi done done < $TXT author=$(echo $author | tr ' ' '\n' | grep -v "$first_author" | sort | uniq) author="$first_author $author" eval $1=$(echo $author | sed -e 's/ /,/g') if [ x"$3" != x ] then eval $3=$first_author fi } reply() { PATCH=$1 # patch_name=$(stripit $1) # PATCH=$P/patches/$patch_name.patch # TXT=$P/txt/$patch_name.txt # if [ ! -f $TXT ] # then # echo $TXT is missing # exit 1 # fi echo "PATCH=$PATCH" SUBJECT=`grep "Subject:" $PATCH` # SUBJECT=$(head -n 2 $PATCH | tail -n 1) MESSAGE_ID=`grep -i "^Message-ID:" $PATCH | cut -f 2 -d ' ' | cut -f 2 -d '<' | cut -f 1 -d '>'` author AUTHOR $1 FIRST_AUTHOR echo author said $AUTHOR echo first_author said $FIRST_AUTHOR if [ x"$AUTHOR" == "x" ] then echo nobody to notify exit 0 fi to="" for i in $(echo $AUTHOR | sed -e 's/,/ /g') do if ! echo "$TO" | grep "$i" then to=$to" -to $i" fi done if [ x"$cc" != x ] then cc="-cc $cc" fi echo makemail -to $AUTHOR -from=$FROM -subject="patch $PATCH added to gregkh tree" -date="$(date -R)" -reply_to=$MESSAGE_ID echo smtpsend -server=$SMTP_SERVER $to -from=$FROM ( echo echo -n "This is a note to let you know that I've just added " echo "the patch titled" echo echo " " $SUBJECT echo echo "to my gregkh-2.6 tree. Its filename is" echo echo " " $PATCH echo echo "This tree can be found at " echo " http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/" echo echo cat $PATCH echo echo echo -n "Patches currently in gregkh-2.6 which might be from " echo "$FIRST_AUTHOR are" echo grep -lR $FIRST_AUTHOR /home/greg/linux/patches/ 2> /dev/null | sed -e 's/\/home\/greg\/linux\/patches\///' ) | makemail -to $AUTHOR -from=$FROM \ -subject="patch $PATCH added to gregkh-2.6 tree" \ -date="$(date -R)" \ -reply_to="$MESSAGE_ID" | \ # talk to the suse network instead of localhost (due to the way suse.de now handles email...) # smtpsend -server=$SMTP_SERVER $to -from=$FROM msmtp $to } for patch_file in $* do reply $patch_file echo "acknowledged $patch_file" echo "-----------------------------------------------" echo done