#!/bin/sh
#
# Copyright (c) 2005 Linus Torvalds
#

. git-sh-setup-script || die "Not a git archive"

usage () {
	die 'git commit [-m existing-commit] [<path>...]'
}

while case "$#" in 0) break ;; esac
do
    case "$1" in
    -m) shift
        case "$#" in
	0) usage ;;
	*) use_commit=`git-rev-parse "$1"` ||
	   exit ;;
	esac
	;;
    *)  break
        ;;
    esac
    shift
done

git-update-cache -q --refresh -- "$@" || exit 1
PARENTS="-p HEAD"
if [ ! -r "$GIT_DIR/HEAD" ]; then
	if [ -z "$(git-ls-files)" ]; then
		echo Nothing to commit 1>&2
		exit 1
	fi
	(
		echo "#"
		echo "# Initial commit"
		echo "#"
		git-ls-files | sed 's/^/# New file: /'
		echo "#"
	) > .editmsg
	PARENTS=""
else
	if [ -f "$GIT_DIR/MERGE_HEAD" ]; then
		echo "#"
		echo "# It looks like your may be committing a MERGE."
		echo "# If this is not correct, please remove the file"
		echo "#	$GIT_DIR/MERGE_HEAD"
		echo "# and try again"
		echo "#"
		PARENTS="-p HEAD -p MERGE_HEAD"
	elif test "$use_commit" != ""
	then
		pick_author_script='
		/^author /{
			h
			s/^author \([^<]*\) <[^>]*> .*$/\1/
			s/'\''/'\''\'\'\''/g
			s/.*/GIT_AUTHOR_NAME='\''&'\''/p

			g
			s/^author [^<]* <\([^>]*\)> .*$/\1/
			s/'\''/'\''\'\'\''/g
			s/.*/GIT_AUTHOR_EMAIL='\''&'\''/p

			g
			s/^author [^<]* <[^>]*> \(.*\)$/\1/
			s/'\''/'\''\'\'\''/g
			s/.*/GIT_AUTHOR_DATE='\''&'\''/p

			q
		}
		'
		set_author_env=`git-cat-file commit "$use_commit" |
		sed -ne "$pick_author_script"`
		eval "$set_author_env"
		export GIT_AUTHOR_NAME
		export GIT_AUTHOR_EMAIL
		export GIT_AUTHOR_DATE
		git-cat-file commit "$use_commit" |
		sed -e '1,/^$/d'
	fi >.editmsg
	git-status-script >>.editmsg
fi
if [ "$?" != "0" ]
then
	cat .editmsg
	rm .editmsg
	exit 1
fi
case "$use_commit" in
'')
	${VISUAL:-${EDITOR:-vi}} .editmsg
	;;
esac
grep -v '^#' < .editmsg | git-stripspace > .cmitmsg
[ -s .cmitmsg ] && 
	tree=$(git-write-tree) &&
	commit=$(cat .cmitmsg | git-commit-tree $tree $PARENTS) &&
	echo $commit > "$GIT_DIR/HEAD" &&
	rm -f -- "$GIT_DIR/MERGE_HEAD"
ret="$?"
rm -f .cmitmsg .editmsg
exit "$ret"
