stagit

static git page generator
git clone git://git.codemadness.org/stagit
Log | Files | Refs | README | LICENSE

commit bdcf38baa40fd508a9b890afb0a75e53f0819a37
parent 4e307d3076d88b0a8e096e23df8c78077542ab3e
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Sun, 30 Jul 2017 17:21:42 +0200

improve example scripts, add to build (Makefile)

Diffstat:
MMakefile | 8+++++---
MREADME | 2+-
Dexample.sh | 43-------------------------------------------
Aexample_create.sh | 43+++++++++++++++++++++++++++++++++++++++++++
Mexample_post-receive.sh | 21+++++++++++----------
5 files changed, 60 insertions(+), 57 deletions(-)

diff --git a/Makefile b/Makefile @@ -40,7 +40,7 @@ dist: mkdir -p ${NAME}-${VERSION} cp -f ${MAN1} ${HDR} ${SCRIPTS} ${SRC} ${COMPATSRC} ${DOC} \ Makefile config.mk favicon.png logo.png style.css \ - example.sh \ + example_create.sh example_post-receive.sh \ ${NAME}-${VERSION} # make tarball tar -cf - ${NAME}-${VERSION} | \ @@ -68,7 +68,8 @@ install: all cp -f style.css\ favicon.png\ logo.png\ - example.sh\ + example_create.sh\ + example_post-receive.sh\ README\ ${DESTDIR}${PREFIX}/share/${NAME} # installing manual pages. @@ -84,7 +85,8 @@ uninstall: ${DESTDIR}${PREFIX}/share/${NAME}/style.css\ ${DESTDIR}${PREFIX}/share/${NAME}/favicon.png\ ${DESTDIR}${PREFIX}/share/${NAME}/logo.png\ - ${DESTDIR}${PREFIX}/share/${NAME}/example.sh\ + ${DESTDIR}${PREFIX}/share/${NAME}/example_create.sh\ + ${DESTDIR}${PREFIX}/share/${NAME}/example_post-receive.sh\ ${DESTDIR}${PREFIX}/share/${NAME}/README -rmdir ${DESTDIR}${PREFIX}/share/${NAME} # removing manual pages. diff --git a/README b/README @@ -114,7 +114,7 @@ git post-receive hook (repo/.git/hooks/post-receive): # ... #fi - # see example.sh for normal creation of the files. + # see example_create.sh for normal creation of the files. Create .tar.gz archives by tag diff --git a/example.sh b/example.sh @@ -1,43 +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) before running this script: -# - copy style.css, logo.png and favicon.png manually, a style.css example -# is included. -# -# - write clone url, for example "git://git.codemadness.org/dir" to the "url" -# file for each repo. -# - write owner of repo to the "owner" file. -# - write description in "description" file. -# -# Usage: -# - mkdir -p htmldir && cd htmldir -# - sh example.sh - -# path must be absolute. -reposdir="/var/www/domains/git.codemadness.nl/home/src" -curdir=$(pwd) - -# make index. -stagit-index "${reposdir}/"*/ > "${curdir}/index.html" - -# make files per repo. -for dir in "${reposdir}/"*/; do - # strip .git suffix. - r=$(basename "${dir}") - d=$(basename "${dir}" ".git") - printf "%s... " "${d}" - - mkdir -p "${curdir}/${d}" - cd "${curdir}/${d}" - stagit -c ".cache" "${reposdir}/${r}" - - # symlinks - ln -sf log.html index.html - ln -sf ../style.css style.css - ln -sf ../logo.png logo.png - ln -sf ../favicon.png favicon.png - - printf "done\n" -done diff --git a/example_create.sh b/example_create.sh @@ -0,0 +1,43 @@ +#!/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: +# - copy style.css, logo.png and favicon.png manually, a style.css example +# is included. +# +# - write clone url, for example "git://git.codemadness.org/dir" to the "url" +# file for each repo. +# - write owner of repo to the "owner" file. +# - write description in "description" file. +# +# Usage: +# - mkdir -p htmldir && cd htmldir +# - sh example_create.sh + +# path must be absolute. +reposdir="/var/www/domains/git.codemadness.nl/home/src" +curdir="$(pwd)" + +# make index. +stagit-index "${reposdir}/"*/ > "${curdir}/index.html" + +# make files per repo. +for dir in "${reposdir}/"*/; do + # strip .git suffix. + r=$(basename "${dir}") + d=$(basename "${dir}" ".git") + printf "%s... " "${d}" + + mkdir -p "${curdir}/${d}" + cd "${curdir}/${d}" + stagit -c ".cache" "${reposdir}/${r}" + + # symlinks + ln -sf log.html index.html + ln -sf ../style.css style.css + ln -sf ../logo.png logo.png + ln -sf ../favicon.png favicon.png + + echo "done" +done diff --git a/example_post-receive.sh b/example_post-receive.sh @@ -9,8 +9,8 @@ # this is the directory of the repo when called from the post-receive script. name="$1" -if test "$name" = ""; then - name="$(basename $(pwd))" +if test "${name}" = ""; then + name=$(basename $(pwd)) fi # config @@ -23,17 +23,17 @@ destdir="${htmldir}${stagitdir}" cachefile=".htmlcache" # /config -if ! test -d "$dir"; then - echo "$dir does not exist" >&2 +if ! test -d "${dir}"; then + echo "${dir} does not exist" >&2 exit 1 fi -cd "$dir" || exit 1 +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 + hasrevs=$(git rev-list "${old}" "^${new}" | sed 1q) + if test -n "${hasrevs}"; then force=1 break fi @@ -47,14 +47,15 @@ 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 +# 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}" @@ -62,4 +63,4 @@ ln -sf log.html index.html ln -sf ../style.css style.css ln -sf ../logo.png logo.png -printf "done\n" +echo "done"