URI: 
       improve example, add initial post-receive example - 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
       ---
   DIR commit 8dde93c6f9887d8a69ce60d528970848c01abb3d
   DIR parent 4a1c5be06d3e0a487cc43e910093ab690dd33114
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat, 15 Jul 2017 12:58:10 +0200
       
       improve example, add initial post-receive example
       
       Diffstat:
         D example.sh                          |      37 -------------------------------
         A example_create.sh                   |      38 +++++++++++++++++++++++++++++++
         A example_post-receive.sh             |      66 +++++++++++++++++++++++++++++++
       
       3 files changed, 104 insertions(+), 37 deletions(-)
       ---
   DIR diff --git a/example.sh b/example.sh
       @@ -1,37 +0,0 @@
       -#!/bin/sh
       -# - Makes index for repositories in a single directory.
       -# - Makes static pages for each repository directory.
       -#
       -# NOTE, things to do manually (once):
       -# - write clone url, for example "git://git.codemadness.org/dir" to the "url"
       -#   file for each repo.
       -#
       -# Usage:
       -# - mkdir -p gphdir && cd gphdir
       -# - sh example.sh
       -
       -# path must be absolute.
       -reposdir="/var/scm/git"
       -gopherdir="/var/gopher"
       -stagitdir="/scm"
       -destdir="${gopherdir}/${stagitdir}"
       -
       -# make index.
       -stagit-gopher-index -b "${stagitdir}" "${reposdir}/"*/ > "${destdir}/index.gph"
       -
       -# make files per repo.
       -for dir in "${reposdir}/"*/; do
       -        # strip .git suffix.
       -        r=$(basename "${dir}")
       -        d=$(basename "${dir}" ".git")
       -        printf "%s... " "${d}"
       -
       -        mkdir -p "${destdir}/${d}"
       -        cd "${destdir}/${d}"
       -        stagit-gopher -b "${stagitdir}/${d}" -c ".cache" "${reposdir}/${r}"
       -
       -        # symlinks
       -        ln -sf log.gph index.gph
       -
       -        printf "done\n"
       -done
   DIR diff --git a/example_create.sh b/example_create.sh
       @@ -0,0 +1,38 @@
       +#!/bin/sh
       +# - Makes index for repositories in a single directory.
       +# - Makes static pages for each repository directory.
       +#
       +# NOTE, things to do manually (once) before running this script:
       +# - write clone url, for example "git://git.codemadness.org/dir" to the "url"
       +#   file for each repo.
       +# - write description in "description" file.
       +#
       +# Usage:
       +# - mkdir -p gphdir && cd gphdir
       +# - sh example.sh
       +
       +# path must be absolute.
       +reposdir="/var/scm/git"
       +gopherdir="/var/gopher"
       +stagitdir="/scm"
       +destdir="${gopherdir}/${stagitdir}"
       +
       +# make index.
       +stagit-gopher-index -b "${stagitdir}" "${reposdir}/"*/ > "${destdir}/index.gph"
       +
       +# make files per repo.
       +for dir in "${reposdir}/"*/; do
       +        # strip .git suffix.
       +        r=$(basename "${dir}")
       +        d=$(basename "${dir}" ".git")
       +        printf "%s... " "${d}"
       +
       +        mkdir -p "${destdir}/${d}"
       +        cd "${destdir}/${d}"
       +        stagit-gopher -b "${stagitdir}/${d}" -c ".cache" "${reposdir}/${r}"
       +
       +        # symlinks
       +        ln -sf log.gph index.gph
       +
       +        printf "done\n"
       +done
   DIR diff --git a/example_post-receive.sh b/example_post-receive.sh
       @@ -0,0 +1,66 @@
       +#!/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}"
       +gopherdir="/home/www/gopher"
       +stagitdir="/"
       +destdir="${gopherdir}/${stagitdir}"
       +cachefile=".gphcache"
       +# /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 .gph 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-gopher-index -b "${stagitdir}" "${reposdir}/"*/ > "${destdir}/index.gph"
       +
       +# remove /'s at the end.
       +stagitdir=$(printf '%s' "${stagitdir}" | sed 's@[/]*$@@g')
       +# make pages.
       +stagit-gopher -b "${stagitdir}/${d}" -c "${cachefile}" "${reposdir}/${r}"
       +
       +ln -sf log.gph index.gph
       +
       +printf "done\n"