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

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

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

files=()
while case "$#" in 0) break ;; esac
do
    case "$1" in
    -m) shift
        case "$#" in
	0) usage ;;
	*) use_commit=`git-rev-parse --verify "$1"` ||
	   exit ;;
	esac
	;;
    --all)
	files=($(git-diff-files --name-only))\
	;;
    *)  break
        ;;
    esac
    shift
done

git-update-cache -q --refresh -- "$@" "${files[@]}" || 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" -a ! -f $GIT_DIR/MERGE_HEAD ]
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"
