#!/bin/bash

set -e

require_clean_work_tree() {
    # test if working tree is dirty
    git rev-parse --verify HEAD > /dev/null &&
    git update-index --refresh &&
    git diff-files --quiet &&
    git diff-index --cached --quiet HEAD ||
    die "Working tree is dirty"
}

branch=master

if [ $# = 1 ]; then
    repo=$1
elif [ $# = 2 ]; then
    repo=$1
    branch=$2
else
    echo "usage: $0 <path to local harfbuzz repository> [branch]"
    exit 1
fi

if [ ! -r $repo/.git ]; then
    echo "The provided path $repo does not point to a git repository."
    exit 2
fi

test -z "$(git rev-parse --show-cdup)" || {
       exit=$?
       echo >&2 "You need to run this command from the toplevel of the working tree."
       exit $exit
}

require_clean_work_tree

url=`git --git-dir=$repo/.git config remote.origin.url`

git ls-files src/3rdparty/harfbuzz | git update-index --force-remove --stdin

git fetch $repo $branch

commit=`git rev-parse FETCH_HEAD`
tree=`git cat-file commit FETCH_HEAD|grep "^tree" | awk '{print $2}'`

git read-tree --prefix=src/3rdparty/harfbuzz $tree

git checkout src/3rdparty/harfbuzz

git status

cat >commitlog.txt <<EOT
Updated Harfbuzz from $url to $commit
EOT

echo
echo "Wrote commitlog.txt. Use with"
echo
echo "    git commit -e -F commitlog.txt"
echo
echo "to commit your changes"
