Introduction
Introduction Statistics Contact Development Disclaimer Help
timprove example, add initial post-receive example - stagit - static git page g…
git clone git://src.adamsgaard.dk/stagit
Log
Files
Refs
README
LICENSE
---
commit 4e307d3076d88b0a8e096e23df8c78077542ab3e
parent 0f428f1b5abb7b6f42944a15e680980d18101353
Author: Hiltjo Posthuma <[email protected]>
Date: Sat, 15 Jul 2017 13:50:24 +0200
improve example, add initial post-receive example
Diffstat:
M example.sh | 5 ++++-
A example_post-receive.sh | 65 +++++++++++++++++++++++++++++…
2 files changed, 69 insertions(+), 1 deletion(-)
---
diff --git a/example.sh b/example.sh
t@@ -2,11 +2,14 @@
# - Makes index for repositories in a single directory.
# - Makes static pages for each repository directory.
#
-# NOTE, things to do manually (once):
+# 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
diff --git a/example_post-receive.sh b/example_post-receive.sh
t@@ -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"
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.