Long live Qt!
[qt:qt.git] / util / harfbuzz / update-harfbuzz
1 #!/bin/bash
2
3 set -e
4
5 require_clean_work_tree() {
6     # test if working tree is dirty
7     git rev-parse --verify HEAD > /dev/null &&
8     git update-index --refresh &&
9     git diff-files --quiet &&
10     git diff-index --cached --quiet HEAD ||
11     die "Working tree is dirty"
12 }
13
14 branch=master
15
16 if [ $# = 1 ]; then
17     repo=$1
18 elif [ $# = 2 ]; then
19     repo=$1
20     branch=$2
21 else
22     echo "usage: $0 <path to local harfbuzz repository> [branch]"
23     exit 1
24 fi
25
26 if [ ! -r $repo/.git ]; then
27     echo "The provided path $repo does not point to a git repository."
28     exit 2
29 fi
30
31 test -z "$(git rev-parse --show-cdup)" || {
32        exit=$?
33        echo >&2 "You need to run this command from the toplevel of the working tree."
34        exit $exit
35 }
36
37 require_clean_work_tree
38
39 url=`git --git-dir=$repo/.git config remote.origin.url`
40
41 git ls-files src/3rdparty/harfbuzz | git update-index --force-remove --stdin
42
43 git fetch $repo $branch
44
45 commit=`git rev-parse FETCH_HEAD`
46 tree=`git cat-file commit FETCH_HEAD|grep "^tree" | awk '{print $2}'`
47
48 git read-tree --prefix=src/3rdparty/harfbuzz $tree
49
50 git checkout src/3rdparty/harfbuzz
51
52 git status
53
54 cat >commitlog.txt <<EOT
55 Updated Harfbuzz from $url to $commit
56 EOT
57
58 echo
59 echo "Wrote commitlog.txt. Use with"
60 echo
61 echo "    git commit -e -F commitlog.txt"
62 echo
63 echo "to commit your changes"