diff options
author | Hiltjo Posthuma <[email protected]> | 2017-07-15 13:50:24 +0200 |
---|---|---|
committer | Hiltjo Posthuma <[email protected]> | 2017-07-15 13:50:24 +0200 |
commit | 4e307d3076d88b0a8e096e23df8c78077542ab3e (patch) | |
tree | f8cfb2f8fc056d563139c6d65fd0e3a5f933a14d /example_post-receive.sh | |
parent | 0f428f1b5abb7b6f42944a15e680980d18101353 (diff) | |
download | stagit-4e307d3076d88b0a8e096e23df8c78077542ab3e.tar.gz stagit-4e307d3076d88b0a8e096e23df8c78077542ab3e.zip |
improve example, add initial post-receive example
Diffstat (limited to 'example_post-receive.sh')
-rwxr-xr-x | example_post-receive.sh | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/example_post-receive.sh b/example_post-receive.sh new file mode 100755 index 0000000..38bda49 --- /dev/null +++ b/example_post-receive.sh @@ -0,0 +1,65 @@ +#!/bin/sh +# generic git post-receive hook. +# change the config options below and call this script in your post-receive +# hook or symlink it. +# +# usage: $0 [name] +# +# if name is not set the basename of the current directory is used, +# this is the directory of the repo when called from the post-receive script. + +name="$1" +if test "$name" = ""; then + name="$(basename $(pwd))" +fi + +# config +# paths must be absolute. +reposdir="/home/src/src" +dir="${reposdir}/${name}" +htmldir="/home/www/domains/git.codemadness.org/htdocs" +stagitdir="/" +destdir="${htmldir}${stagitdir}" +cachefile=".htmlcache" +# /config + +if ! test -d "$dir"; then + echo "$dir does not exist" >&2 + exit 1 +fi +cd "$dir" || exit 1 + +# detect git push -f +force=0 +while read -r old new ref; do + hasrevs=$(git rev-list "$old" "^$new" | sed 1q) + if test -n "$hasrevs"; then + force=1 + break + fi +done + +# strip .git suffix. +r=$(basename "${name}") +d=$(basename "${name}" ".git") +printf "[%s] stagit HTML pages... " "${d}" + +mkdir -p "${destdir}/${d}" +cd "${destdir}/${d}" || exit 1 + +# remove commits and $cachefile on git push -f, this recreated later on. +if test "$force" = "1"; then + rm -f "${cachefile}" + rm -rf "commit" +fi + +# make index. +stagit-index "${reposdir}/"*/ > "${destdir}/index.html" +# make pages. +stagit -c "${cachefile}" "${reposdir}/${r}" + +ln -sf log.html index.html +ln -sf ../style.css style.css +ln -sf ../logo.png logo.png + +printf "done\n" |