154619708ea93d38dbcc412c645ce29ab75ba174
[git-central.git] / server / post-receive-trac
1 #!/bin/sh
2
3 . $(dirname $0)/functions
4
5 while read oldrev newrev refname ; do
6         case "$refname" in
7                 refs/tags/*)
8                         short_refname=${refname##refs/tags/}
9                         ;;
10                 refs/heads/*)
11                         short_refname=${refname##refs/heads/}
12                         ;;
13                 *)
14                         echo >&2 "*** Unknown type of update to $refname"
15                         exit 1
16                         ;;
17         esac
18
19         set_new_commits
20         set_rev_types
21
22         echo "$new_commits" | git rev-list --reverse --stdin | while read commit ; do
23                 set_describe "$commit"
24                 set_describe_tags "$commit"
25                 author="$(git rev-list -n 1 $commit --pretty=format:'%cn <%ce>' | grep -v $commit)"
26                 message="$(git rev-list -n 1 $commit --pretty=format:'%s%n%b' | grep -v $commit)"
27                 "$PYTHON" "$POST_RECEIVE_TRAC" "$TRAC_ENV" "$short_refname" "$describe" "$describe_tags" "$commit" "$author" "$message"
28                 # Trac will crap out if we submit ticket refs too quickly
29                 # http://trac.edgewall.org/ticket/6466
30                 sleep 1
31         done
32 done
33
34 exit 0
35