blob: 3d2ec302954bb052c04037b8b2ddf65f981fa635 [file] [log] [blame]
#!/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
#}
KERNEL_MINOR_VERSION='31'
KERNEL="2.6.$KERNEL_MINOR_VERSION"
EMAIL_ADDRESS='<gregkh@suse.de>'
STABLE='<stable@kernel.org>'
STABLE_COMMITS='<stable-commits@vger.kernel.org>'
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"
TITLE=`grep "Subject:" $PATCH`
# TITLE=$(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
SUBJECT="patch $PATCH added to $KERNEL-stable tree"
CHARSET=$(guess-charset "$PATCH")
if test "x$CHARSET" = "ANSI_X3.4-1968"; then
CHARSET=
else
CHARCMD="-charset=$CHARSET"
fi
ID=`make_message_id`
echo "makemail -to $AUTHOR -from=$FROM -subject=\"$SUBJECT\" -date=\"$(date -R)\" -reply_to=$MESSAGE_ID --message=$ID $CHARCMD"
# echo "smtpsend -server=$SMTP_SERVER $to -from=$FROM"
(
echo
echo -n "This is a note to let you know that we have just queued up the "
echo "patch titled"
echo
echo " $TITLE"
echo
echo "to the $KERNEL-stable tree. Its filename is"
echo
echo " $PATCH"
echo
echo "A git repo of this tree can be found at "
echo " http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary"
echo
echo
cat $PATCH
echo
echo
echo -n "Patches currently in stable-queue which might be from "
echo "$FIRST_AUTHOR are"
echo
grep -lR $FIRST_AUTHOR /home/gregkh/linux/stable/stable-queue/queue-$KERNEL/ 2> /dev/null |
sed -e 's/\/home\/gregkh\/linux\/stable\/stable-queue\///'
) |
makemail -to "$AUTHOR" \
-from="$FROM" \
-cc="$STABLE, $STABLE_COMMITS" \
-subject="$SUBJECT" \
-date="$(date -R)" \
-reply_to="$MESSAGE_ID" \
-message_id="$ID" \
"$CHARCMD" \
| \
# 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