#!/bin/bash STABLE_VERSION="" 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"$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="" STABLE='' STABLE_COMMITS='' 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 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=\"patch $PATCH added to gregkh tree\" -date=\"$(date -R)\" -message=$ID $CHARCMD" echo "sending to $AUTHOR" ( echo echo "The patch below does not apply to the $STABLE_VERSION-stable tree." echo "If someone wants it applied there, or to any other stable or longterm" echo "tree, then please email the backport, including the original git commit" echo "id to ." echo echo "thanks," echo echo "greg k-h" echo echo "------------------ original commit in Linus's tree ------------------" 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/gregkh/linux/patches/ 2> /dev/null | # sed -e 's/\/home\/gregkh\/linux\/patches\///' ) | makemail -to "$AUTHOR" \ -from="$FROM" \ -cc="$STABLE" \ -subject="FAILED: patch \"$SUBJECT\" failed to apply to $STABLE_VERSION-stable tree" \ -date="$(date -R)" \ -message_id="$ID" \ "$CHARCMD" | \ ~/bin/msmtp-enqueue.sh -a coco $to } git_id="$1" shift if [ "${git_id}" == "" ] ; then echo "bad_stable GIT_ID KERNEL_VERSION" echo "Must provide kernel version to be told is bad" exit; fi echo "git_id = ${git_id}" for STABLE_VERSION in $* do echo "bad version = ${STABLE_VERSION}" TMPFILE=`mktemp bad_patch.XXXXX` || exit 1 git show --pretty=email $git_id > $TMPFILE reply $TMPFILE rm $TMPFILE done #for patch_file in $* #do # reply $patch_file # echo "acknowledged $patch_file" # echo "-----------------------------------------------" # echo #done