tCreate stagit-gopher pages for repositories - stagit - static git page generator
(HTM) git clone git://src.adamsgaard.dk/stagit
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 266351f14f1f75459a6d2e81d27513da080ad065
(DIR) parent 659766c53a09b469a534cbeba9d2fe7181542fa5
(HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
Date: Mon, 24 Feb 2020 15:53:52 +0100
Create stagit-gopher pages for repositories
Diffstat:
A create-gopher.sh | 37 +++++++++++++++++++++++++++++++
M create.sh | 3 +--
M post-receive.sh | 27 +++++++++++++++++++++++++++
3 files changed, 65 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/create-gopher.sh b/create-gopher.sh
t@@ -0,0 +1,37 @@
+#!/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_create.sh
+
+# path must be absolute.
+basedir="/src"
+reposdir="/home/git"
+curdir="$(pwd)"
+
+# make index.
+stagit-gopher-index -b "$basedir" "${reposdir}/"*/ > "${curdir}/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 "${curdir}/${d}"
+ cd "${curdir}/${d}" || continue
+ stagit-gopher -b "${basedir}/${d}" -c ".cache" "${reposdir}/${r}"
+
+ # symlinks
+ ln -sf log.gph index.gph
+
+ echo "done"
+done
(DIR) diff --git a/create.sh b/create.sh
t@@ -41,8 +41,7 @@ for dir in "${reposdir}/"*/; do
ln -sf ../logo.png logo.png
ln -sf ../favicon.png favicon.png
- printf "Disallow: /%s/file/\nDisallow: /%s/commit/\n" \
- "$r" "$r" >> "${curdir}/robots.txt"
+ echo "Disallow: /${r}/file/\nDisallow: /${r}/commit/\n" >> "${curdir}/robots.txt"
echo "done"
done
(DIR) diff --git a/post-receive.sh b/post-receive.sh
t@@ -22,8 +22,11 @@ fi
reposdir="/home/git"
dir="${reposdir}/${name}"
htmldir="/var/www/domains/src.adamsgaard.dk"
+gopherdir="/var/gopher"
stagitdir="/"
destdir="${htmldir}${stagitdir}"
+gopherstagitdir="/src"
+gopherdestdir="${gopherdir}${gopherstagitdir}"
cachefile=".htmlcache"
# /config
t@@ -49,6 +52,8 @@ done
# strip .git suffix.
r=$(basename "${name}")
d=$(basename "${name}" ".git")
+
+## HTML
printf "[%s] stagit HTML pages... " "${d}"
mkdir -p "${destdir}/${d}"
t@@ -77,3 +82,25 @@ ln -sf ../style.css style.css
ln -sf ../logo.png logo.png
echo "done"
+
+## GPH
+printf "[%s] stagit gopher pages... " "${d}"
+
+mkdir -p "${gopherdestdir}/${d}"
+cd "${gopherdestdir}/${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 "${gopherstagitdir}" "${reposdir}/"*/ > "${destdir}/index.gph"
+
+# make pages.
+stagit-gopher -b "${gopherstagitdir}/${d}" -c "${cachefile}" "${reposdir}/${r}"
+
+ln -sf log.gph index.gph
+
+echo "done"