texample_post-receive.sh - stagit - [fork] customized build of stagit, the stat… | |
git clone git://src.adamsgaard.dk/stagit | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
texample_post-receive.sh (1748B) | |
--- | |
1 #!/bin/sh | |
2 # generic git post-receive hook. | |
3 # change the config options below and call this script in your post-rece… | |
4 # hook or symlink it. | |
5 # | |
6 # usage: $0 [name] | |
7 # | |
8 # if name is not set the basename of the current directory is used, | |
9 # this is the directory of the repo when called from the post-receive sc… | |
10 | |
11 # NOTE: needs to be set for correct locale (expects UTF-8) otherwise the | |
12 # default is LC_CTYPE="POSIX". | |
13 export LC_CTYPE="en_US.UTF-8" | |
14 | |
15 name="$1" | |
16 if test "${name}" = ""; then | |
17 name=$(basename "$(pwd)") | |
18 fi | |
19 | |
20 # config | |
21 # paths must be absolute. | |
22 reposdir="/home/src/src" | |
23 dir="${reposdir}/${name}" | |
24 htmldir="/home/www/domains/git.codemadness.org/htdocs" | |
25 stagitdir="/" | |
26 destdir="${htmldir}${stagitdir}" | |
27 cachefile=".htmlcache" | |
28 # /config | |
29 | |
30 if ! test -d "${dir}"; then | |
31 echo "${dir} does not exist" >&2 | |
32 exit 1 | |
33 fi | |
34 cd "${dir}" || exit 1 | |
35 | |
36 # detect git push -f | |
37 force=0 | |
38 while read -r old new ref; do | |
39 test "${old}" = "0000000000000000000000000000000000000000" && co… | |
40 test "${new}" = "0000000000000000000000000000000000000000" && co… | |
41 | |
42 hasrevs=$(git rev-list "${old}" "^${new}" | sed 1q) | |
43 if test -n "${hasrevs}"; then | |
44 force=1 | |
45 break | |
46 fi | |
47 done | |
48 | |
49 # strip .git suffix. | |
50 r=$(basename "${name}") | |
51 d=$(basename "${name}" ".git") | |
52 printf "[%s] stagit HTML pages... " "${d}" | |
53 | |
54 mkdir -p "${destdir}/${d}" | |
55 cd "${destdir}/${d}" || exit 1 | |
56 | |
57 # remove commits and ${cachefile} on git push -f, this recreated later o… | |
58 if test "${force}" = "1"; then | |
59 rm -f "${cachefile}" | |
60 rm -rf "commit" | |
61 fi | |
62 | |
63 # make index. | |
64 stagit-index "${reposdir}/"*/ > "${destdir}/index.html" | |
65 | |
66 # make pages. | |
67 stagit -c "${cachefile}" -u "https://git.codemadness.nl/$d/" "${reposdir… | |
68 | |
69 ln -sf log.html index.html | |
70 ln -sf ../style.css style.css | |
71 ln -sf ../logo.png logo.png | |
72 | |
73 echo "done" |