Introduction
Introduction Statistics Contact Development Disclaimer Help
timprovements - stagit - static git page generator
git clone git://src.adamsgaard.dk/stagit
Log
Files
Refs
README
LICENSE
---
commit c6d8a37bb97d859be4d2bc642fb0823a90958687
parent 598615fa1b52360134d8dd41e60035d12d3177d5
Author: Hiltjo Posthuma <[email protected]>
Date: Fri, 4 Dec 2015 17:26:39 +0100
improvements
- rename $logdir to $htmldir.
- use file .git/description as $description.
- use directory name of repodir as $name.
- set symlink for default page.
Diffstat:
M TODO | 7 ++++---
M urmoms | 88 ++++++++++++++++++-----------…
2 files changed, 55 insertions(+), 40 deletions(-)
---
diff --git a/TODO b/TODO
t@@ -6,11 +6,12 @@
- escape < > ' " etc, maybe even use CDATA ?
- shorter date format for logs.html page.
- speed up generating files.
-x add stylesheet + 2f30/suckless logo.
- for files link to the commit but make the filename a link anchor.
-- default to log view (stateless).
- link to lines in file view! / commit log?
- show all the tags and branches as list.
- show commits for all tags and branches???
-x no tarballs, snapshots and such.
- able to add link to git url: git://url... per project.
+
+x default to log view (stateless).
+x no tarballs, snapshots and such.
+x add stylesheet + 2f30/suckless logo.
diff --git a/urmoms b/urmoms
t@@ -15,15 +15,16 @@ header() {
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="en" />
-<title>${description}</title>
+<title>${name} - ${description}</title>
<base href="${baseurl}" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<center>
-<h1><img src="logo.png" alt="" /> ${description}</h1>
-<a href="index.html">Tree</a> |
+<h1><img src="logo.png" alt="" /> ${name}</h1>
+<span class="desc">${description}</span><br/>
<a href="log.html">Log</a> |
+<a href="files.html">Files</a> |
<a href="stats.html">Stats</a> |
<a href="readme.html">README</a> |
<a href="license.html">LICENSE</a>
t@@ -43,57 +44,67 @@ footer() {
!__EOF__
}
+# usage: repodir and htmldir must be set.
if test x"$1" = x"" || test x"$2" = x""; then
usage
fi
+# make absolute path to htmldir.
+htmldir="$(readlink -f $2)"
+mkdir -p "${htmldir}"
+
# repodir must be a directory to go to.
cd "$1" || usage
+# project name
+# TODO: if bare repo just remove .git suffix?
+name=$(basename "$(pwd)")
+
+# read .git/description.
+description=""
+test -f ".git/description" && description="$(cat '.git/description')"
+
# TODO: make configurable.
baseurl="http://cow.codemadness.org/gitlog/"
-# TODO: read .git/description.
-description="sbase"
-# absolute path to logdir.
-logdir="$(readlink -f $2)"
-mkdir -p "${logdir}"
+indexpage="log.html"
+
firstcommit=$(git log | grep '^commit ' | tail -n 1 | cut -f 2 -d ' ')
# make log per file.
# TODO: just link to commit/commit? save some space and time?
git ls-tree -r --name-only master | while read -r file; do
- test -e "${logdir}/file/${file}.html" && continue
+ test -e "${htmldir}/file/${file}.html" && continue
d=$(dirname "${file}")
- mkdir -p "${logdir}/file/${d}"
+ mkdir -p "${htmldir}/file/${d}"
- header > "${logdir}/file/${file}.html"
+ header > "${htmldir}/file/${file}.html"
git show "${firstcommit}"...master "${file}" | \
- sed -E 's@^commit (.*)$@commit <a href="commit/\1.html">\1</a>…
- footer >> "${logdir}/file/${file}.html"
+ sed -E 's@^commit (.*)$@commit <a href="commit/\1.html">\1</a>…
+ footer >> "${htmldir}/file/${file}.html"
done
# make log with all commits.
-header > "${logdir}/log.html"
-printf '<table border="0">' >> "${logdir}/log.html"
-git log --pretty='<tr><td align="right">%cD</td><td><a href="commit/%H.html">%…
-printf '</table>' >> "${logdir}/log.html"
-footer >> "${logdir}/log.html"
+header > "${htmldir}/log.html"
+printf '<table border="0">' >> "${htmldir}/log.html"
+git log --pretty='<tr><td align="right">%cD</td><td><a href="commit/%H.html">%…
+printf '</table>' >> "${htmldir}/log.html"
+footer >> "${htmldir}/log.html"
# make diff for each commit (all files).
-mkdir -p "${logdir}/commit"
+mkdir -p "${htmldir}/commit"
git log --pretty='%H' | while read -r commit; do
- test -e "${logdir}/commit/${commit}.html" && continue
- header > "${logdir}/commit/${commit}.html"
- git show "${commit}" >> "${logdir}/commit/${commit}.html"
- footer >> "${logdir}/commit/${commit}.html"
+ test -e "${htmldir}/commit/${commit}.html" && continue
+ header > "${htmldir}/commit/${commit}.html"
+ git show "${commit}" >> "${htmldir}/commit/${commit}.html"
+ footer >> "${htmldir}/commit/${commit}.html"
done
# make index with file links.
-header >> "${logdir}/index.html"
-git ls-tree -r master | sed -E 's@ (.*)$@ <a href="file/\1.html"…
-footer >> "${logdir}/index.html"
+header >> "${htmldir}/files.html"
+git ls-tree -r master | sed -E 's@ (.*)$@ <a href="file/\1.html"…
+footer >> "${htmldir}/files.html"
# readme page
# find README file.
t@@ -102,13 +113,13 @@ for f in README README.md readme.md; do
test -e "${f}" && readme="${f}"
done
# make page.
-header > "${logdir}/readme.html"
+header > "${htmldir}/readme.html"
if test x"${readme}" != x""; then
- cat "${readme}" >> "${logdir}/readme.html"
+ cat "${readme}" >> "${htmldir}/readme.html"
else
- echo "no README file found" >> "${logdir}/readme.html"
+ echo "no README file found" >> "${htmldir}/readme.html"
fi
-footer >> "${logdir}/readme.html"
+footer >> "${htmldir}/readme.html"
# license page
# find LICENSE file.
t@@ -117,15 +128,18 @@ for f in LICENSE LICENSE.md; do
test -e "${f}" && license="${f}"
done
# make page.
-header > "${logdir}/license.html"
+header > "${htmldir}/license.html"
if test x"${readme}" != x""; then
- cat "${license}" >> "${logdir}/license.html"
+ cat "${license}" >> "${htmldir}/license.html"
else
- echo "unknown license" >> "${logdir}/license.html"
+ echo "unknown license" >> "${htmldir}/license.html"
fi
-footer >> "${logdir}/license.html"
+footer >> "${htmldir}/license.html"
# stats (authors).
-header > "${logdir}/stats.html"
-git shortlog -n -s >> "${logdir}/stats.html"
-footer >> "${logdir}/stats.html"
+header > "${htmldir}/stats.html"
+git shortlog -n -s >> "${htmldir}/stats.html"
+footer >> "${htmldir}/stats.html"
+
+# symlink to index page.
+ln -sf "$indexpage" "${htmldir}/index.html"
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.