URI: 
       example_post-receive.sh - stagit-gopher - A git gopher frontend. (mirror)
  HTML git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR LICENSE
       ---
       example_post-receive.sh (1810B)
       ---
            1 #!/bin/sh
            2 # generic git post-receive hook.
            3 # change the config options below and call this script in your post-receive
            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 script.
           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 gopherdir="/home/www/gopher"
           25 stagitdir="/"
           26 destdir="${gopherdir}/${stagitdir}"
           27 cachefile=".gphcache"
           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" && continue
           40         test "${new}" = "0000000000000000000000000000000000000000" && continue
           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 .gph 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 on.
           58 if test "${force}" = "1"; then
           59         rm -f "${cachefile}"
           60         rm -rf "commit"
           61 fi
           62 
           63 # remove /'s at the end.
           64 stagitdir=$(printf "%s" "${stagitdir}" | sed 's@[/]*$@@g')
           65 
           66 # make index.
           67 stagit-gopher-index -b "${stagitdir}" "${reposdir}/"*/ > "${destdir}/index.gph"
           68 
           69 # make pages.
           70 stagit-gopher -b "${stagitdir}/${d}" -c "${cachefile}" \
           71         -u "gopher://codemadness.org/1/git/$d/" "${reposdir}/${r}"
           72 
           73 ln -sf log.gph index.gph
           74 
           75 echo "done"