#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#

usage () {
    echo >&2 "usage: $0"' [-n] [-o dir] [-<diff options>...] upstream [ our-head ]

Prepare each commit with its patch since our-head forked from upstream,
one file per patch, for e-mail submission.  Each output file is
numbered sequentially from 1, and uses the first line of the commit
message (massaged for pathname safety) as the filename.

When -o is specified, output files are created in that directory; otherwise in
the current working directory.

When -n is specified, instead of "[PATCH] Subject", the first line is formatted
as "[PATCH N/M] Subject", unless you have only one patch.
'
    exit 1
}

diff_opts=
IFS='
'
LF='
'
outdir=./

while case "$#" in 0) break;; esac
do
    case "$1" in
    -n|--n|--nu|--num|--numb|--numbe|--number|--numbere|--numbered)
    numbered=t ;;
    -o=*|--o=*|--ou=*|--out=*|--outp=*|--outpu=*|--output=*|--output-=*|\
    --output-d=*|--output-di=*|--output-dir=*|--output-dire=*|\
    --output-direc=*|--output-direct=*|--output-directo=*|\
    --output-director=*|--output-directory=*)
    outdir=`expr "$1" : '-[^=]*=\(.*\)'` ;;
    -o|--o|--ou|--out|--outp|--outpu|--output|--output-|--output-d|\
    --output-di|--output-dir|--output-dire|--output-direc|--output-direct|\
    --output-directo|--output-director|--output-directory)
    case "$#" in 1) usage ;; esac; shift
    outdir="$1" ;;
    -*)	diff_opts="$diff_opts$LF$1" ;;
    *) break ;;
    esac
    shift
done

case "$#" in
2)    linus="$1" junio="$2" ;;
1)    linus="$1" junio=HEAD ;;
*)    usage ;;
esac
junio=`git-rev-parse --verify "$junio"`
linus=`git-rev-parse --verify "$linus"`

case "$outdir" in
*/) ;;
*) outdir="$outdir/" ;;
esac
test -d "$outdir" || mkdir -p "$outdir" || exit

tmp=.tmp-series$$
trap 'rm -f $tmp-*' 0 1 2 3 15

series=$tmp-series

titleScript='
	/./d
	/^$/n
	s/^\[PATCH[^]]*\] *//
	s/[^-a-z.A-Z_0-9]/-/g
        s/\.\.\.*/\./g
	s/\.*$//
	s/--*/-/g
	s/^-//
	s/-$//
	s/$/./
	p
	q
'

_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
stripCommitHead='/^'"$_x40"' (from '"$_x40"')$/d'

git-rev-list --merge-order "$junio" "^$linus" >$series
total=`wc -l <$series`
i=$total
while read commit
do
    title=`git-cat-file commit "$commit" |
    git-stripspace |
    sed -ne "$titleScript"`
    case "$numbered" in
    '') num= ;;
    *)
	case $total in
	1) num= ;;
	*) num=' '`printf "%d/%d" $i $total` ;;
	esac
    esac
    file=`printf '%04d-%stxt' $i "$title"`
    i=`expr "$i" - 1`
    echo "$file"
    {
	mailScript='
	/./d
	/^$/n
	s|^|[PATCH'"$num"'] |
	: body
	p
	n
	b body'

	git-cat-file commit "$commit" |
	git-stripspace |
	sed -ne "$mailScript"
	echo '---'
	echo
	git-diff-tree -p $diff_opts "$commit" | git-apply --stat --summary
	echo
	git-diff-tree -p $diff_opts "$commit" | sed -e "$stripCommitHead"
    } >"$outdir$file"
done <$series
