blob: e4402db898e316cec9c344a378b6c0e5309ecc2f [file] [log] [blame]
#!/bin/bash
KERNEL_MINOR_VERSION='34'
KERNEL="2.6.$KERNEL_MINOR_VERSION"
EMAIL_ADDRESS='<gregkh@linuxfoundation.org>'
STABLE='<stable@vger.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"
# SUBJECT=`grep "Subject:" $PATCH`
SUBJECT=`grep "Subject:" $PATCH | sed s/Subject\:\ //`
# 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
# 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 "This is a note to let you know that I've just added the patch titled"
echo
echo " $SUBJECT"
echo
echo "to the $KERNEL-stable tree which can be found at:"
echo " https://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary"
echo
echo "The filename of the patch is:"
echo " " `basename "$PATCH"`
echo "and it can be found in the queue-$KERNEL subdirectory."
echo
echo "If you, or anyone else, feels it should not be added to the stable tree,"
echo "please let <stable@vger.kernel.org> know about it."
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="Patch \"$SUBJECT\" has been added to the $KERNEL-stable tree" \
-date="$(date -R)" \
-reply_to="$MESSAGE_ID" \
-message_id="$ID" \
"$CHARCMD" \
| \
~/bin/msmtp-enqueue.sh -a coco "$to"
#msmtp $to
}
for patch_file in $*
do
reply $patch_file
echo "acknowledged $patch_file"
echo "-----------------------------------------------"
echo
done