improvements: - stagit-gopher - A git gopher frontend. (mirror) | |
git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2h… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
LICENSE | |
--- | |
commit bda4633633a0701bbd2f7861674a8e612d961fb7 | |
parent 5734f7aca10abefa680497a5cb0bdaf538b6476a | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Sat, 5 Dec 2015 00:37:31 +0100 | |
improvements: | |
- nicer file list. | |
- relative urls, dont use base href. | |
- add link to plain files, files should be checked out in "file" dir. | |
- strip .git from bare repos. | |
- simplify part of commit per file, just link to commit + file anchor (WIP). | |
Diffstat: | |
M urmoms | 74 +++++++++++++----------------… | |
1 file changed, 32 insertions(+), 42 deletions(-) | |
--- | |
diff --git a/urmoms b/urmoms | |
@@ -16,18 +16,17 @@ header() { | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
<meta http-equiv="Content-Language" content="en" /> | |
<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="" /> ${name}</h1> | |
+<h1><img src="${relpath}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> | |
+<a href="${relpath}log.html">Log</a> | | |
+<a href="${relpath}files.html">Files</a> | | |
+<a href="${relpath}stats.html">Stats</a> | | |
+<a href="${relpath}readme.html">README</a> | | |
+<a href="${relpath}license.html">LICENSE</a> | |
</center> | |
<hr/> | |
<pre> | |
@@ -37,8 +36,6 @@ header() { | |
footer() { | |
cat <<!__EOF__ | |
</pre> | |
-<hr/> | |
-<i><center>Powered by urmoms vibrator</center></i> | |
</body> | |
</html> | |
!__EOF__ | |
@@ -56,58 +53,49 @@ 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)") | |
+# default index page (symlink). | |
+indexpage="log.html" | |
+ | |
+# project name, if bare repo remove .git suffix. | |
+name=$(basename "$(pwd)" ".git") | |
# read .git/description. | |
description="" | |
test -f ".git/description" && description="$(cat '.git/description')" | |
-# TODO: make configurable. | |
-baseurl="http://cow.codemadness.org/gitlog/" | |
- | |
-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 "${htmldir}/file/${file}.html" && continue | |
- | |
- d=$(dirname "${file}") | |
- mkdir -p "${htmldir}/file/${d}" | |
- | |
- header > "${htmldir}/file/${file}.html" | |
- git show "${firstcommit}"...master "${file}" | \ | |
- sed -E 's@^commit (.*)$@commit <a href="commit/\1.html">\1</a>… | |
- footer >> "${htmldir}/file/${file}.html" | |
-done | |
- | |
-# make log with all commits. | |
-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). | |
+relpath="../" | |
mkdir -p "${htmldir}/commit" | |
git log --pretty='%H' | while read -r commit; do | |
test -e "${htmldir}/commit/${commit}.html" && continue | |
+ | |
header > "${htmldir}/commit/${commit}.html" | |
- git show "${commit}" >> "${htmldir}/commit/${commit}.html" | |
+ git show --pretty=full "${commit}" | \ | |
+ sed -E 's@^commit (.*)$@commit <a href="'${relpath}'commit/\1.… | |
footer >> "${htmldir}/commit/${commit}.html" | |
done | |
+# make log with all commits. | |
+relpath="" | |
+header > "${htmldir}/log.html" | |
+printf '<table border="0">' >> "${htmldir}/log.html" | |
+git log --pretty='<tr><td align="right">%cr</td><td><a href="'${relpath}'commi… | |
+printf '</table>' >> "${htmldir}/log.html" | |
+footer >> "${htmldir}/log.html" | |
+ | |
# make index with file links. | |
+relpath="" | |
header >> "${htmldir}/files.html" | |
-git ls-tree -r master | sed -E 's@ (.*)$@ <a href="file/\1.html"… | |
+printf '<table><tr><td><b>Mode</b></td><td><b>Name</b></td><td><b>Size</b></td… | |
+git ls-tree -r -l master | while read -r mode type object size file; do | |
+ git log -1 --pretty='<tr><td>'${mode}'</td><td><a href="'${relpath}'co… | |
+done >> "${htmldir}/files.html" | |
+printf '</table>' >> "${htmldir}/files.html" | |
footer >> "${htmldir}/files.html" | |
# readme page | |
# find README file. | |
+relpath="" | |
readme="" | |
for f in README README.md readme.md; do | |
test -e "${f}" && readme="${f}" | |
@@ -123,6 +111,7 @@ footer >> "${htmldir}/readme.html" | |
# license page | |
# find LICENSE file. | |
+relpath="" | |
license="" | |
for f in LICENSE LICENSE.md; do | |
test -e "${f}" && license="${f}" | |
@@ -137,6 +126,7 @@ fi | |
footer >> "${htmldir}/license.html" | |
# stats (authors). | |
+relpath="" | |
header > "${htmldir}/stats.html" | |
git shortlog -n -s >> "${htmldir}/stats.html" | |
footer >> "${htmldir}/stats.html" |