iexample_post-receive.sh - stagit-gopher - A git gopher frontend. (mirror) Err bitreich.org 70 hgit clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ URL:git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/ bitreich.org 70 1Log /scm/stagit-gopher/log.gph bitreich.org 70 1Files /scm/stagit-gopher/files.gph bitreich.org 70 1Refs /scm/stagit-gopher/refs.gph bitreich.org 70 1Tags /scm/stagit-gopher/tag bitreich.org 70 1README /scm/stagit-gopher/file/README.gph bitreich.org 70 1LICENSE /scm/stagit-gopher/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 iexample_post-receive.sh (1810B) Err bitreich.org 70 i--- Err bitreich.org 70 i 1 #!/bin/sh Err bitreich.org 70 i 2 # generic git post-receive hook. Err bitreich.org 70 i 3 # change the config options below and call this script in your post-receive Err bitreich.org 70 i 4 # hook or symlink it. Err bitreich.org 70 i 5 # Err bitreich.org 70 i 6 # usage: $0 [name] Err bitreich.org 70 i 7 # Err bitreich.org 70 i 8 # if name is not set the basename of the current directory is used, Err bitreich.org 70 i 9 # this is the directory of the repo when called from the post-receive script. Err bitreich.org 70 i 10 Err bitreich.org 70 i 11 # NOTE: needs to be set for correct locale (expects UTF-8) otherwise the Err bitreich.org 70 i 12 # default is LC_CTYPE="POSIX". Err bitreich.org 70 i 13 export LC_CTYPE="en_US.UTF-8" Err bitreich.org 70 i 14 Err bitreich.org 70 i 15 name="$1" Err bitreich.org 70 i 16 if test "${name}" = ""; then Err bitreich.org 70 i 17 name=$(basename "$(pwd)") Err bitreich.org 70 i 18 fi Err bitreich.org 70 i 19 Err bitreich.org 70 i 20 # config Err bitreich.org 70 i 21 # paths must be absolute. Err bitreich.org 70 i 22 reposdir="/home/src/src" Err bitreich.org 70 i 23 dir="${reposdir}/${name}" Err bitreich.org 70 i 24 gopherdir="/home/www/gopher" Err bitreich.org 70 i 25 stagitdir="/" Err bitreich.org 70 i 26 destdir="${gopherdir}/${stagitdir}" Err bitreich.org 70 i 27 cachefile=".gphcache" Err bitreich.org 70 i 28 # /config Err bitreich.org 70 i 29 Err bitreich.org 70 i 30 if ! test -d "${dir}"; then Err bitreich.org 70 i 31 echo "${dir} does not exist" >&2 Err bitreich.org 70 i 32 exit 1 Err bitreich.org 70 i 33 fi Err bitreich.org 70 i 34 cd "${dir}" || exit 1 Err bitreich.org 70 i 35 Err bitreich.org 70 i 36 # detect git push -f Err bitreich.org 70 i 37 force=0 Err bitreich.org 70 i 38 while read -r old new ref; do Err bitreich.org 70 i 39 test "${old}" = "0000000000000000000000000000000000000000" && continue Err bitreich.org 70 i 40 test "${new}" = "0000000000000000000000000000000000000000" && continue Err bitreich.org 70 i 41 Err bitreich.org 70 i 42 hasrevs=$(git rev-list "${old}" "^${new}" | sed 1q) Err bitreich.org 70 i 43 if test -n "${hasrevs}"; then Err bitreich.org 70 i 44 force=1 Err bitreich.org 70 i 45 break Err bitreich.org 70 i 46 fi Err bitreich.org 70 i 47 done Err bitreich.org 70 i 48 Err bitreich.org 70 i 49 # strip .git suffix. Err bitreich.org 70 i 50 r=$(basename "${name}") Err bitreich.org 70 i 51 d=$(basename "${name}" ".git") Err bitreich.org 70 i 52 printf "[%s] stagit .gph pages... " "${d}" Err bitreich.org 70 i 53 Err bitreich.org 70 i 54 mkdir -p "${destdir}/${d}" Err bitreich.org 70 i 55 cd "${destdir}/${d}" || exit 1 Err bitreich.org 70 i 56 Err bitreich.org 70 i 57 # remove commits and ${cachefile} on git push -f, this recreated later on. Err bitreich.org 70 i 58 if test "${force}" = "1"; then Err bitreich.org 70 i 59 rm -f "${cachefile}" Err bitreich.org 70 i 60 rm -rf "commit" Err bitreich.org 70 i 61 fi Err bitreich.org 70 i 62 Err bitreich.org 70 i 63 # remove /'s at the end. Err bitreich.org 70 i 64 stagitdir=$(printf "%s" "${stagitdir}" | sed 's@[/]*$@@g') Err bitreich.org 70 i 65 Err bitreich.org 70 i 66 # make index. Err bitreich.org 70 i 67 stagit-gopher-index -b "${stagitdir}" "${reposdir}/"*/ > "${destdir}/index.gph" Err bitreich.org 70 i 68 Err bitreich.org 70 i 69 # make pages. Err bitreich.org 70 i 70 stagit-gopher -b "${stagitdir}/${d}" -c "${cachefile}" \ Err bitreich.org 70 i 71 -u "gopher://codemadness.org/1/git/$d/" "${reposdir}/${r}" Err bitreich.org 70 i 72 Err bitreich.org 70 i 73 ln -sf log.gph index.gph Err bitreich.org 70 i 74 Err bitreich.org 70 i 75 echo "done" Err bitreich.org 70 .