]> git.armaanb.net Git - stagit.git/commitdiff
initial insertion
authorHiltjo Posthuma <hiltjo@codemadness.org>
Fri, 4 Dec 2015 15:58:04 +0000 (16:58 +0100)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Fri, 4 Dec 2015 15:58:04 +0000 (16:58 +0100)
README [new file with mode: 0644]
TODO [new file with mode: 0644]
logo.png [new file with mode: 0644]
style.css [new file with mode: 0644]
urmoms [new file with mode: 0644]

diff --git a/README b/README
new file mode 100644 (file)
index 0000000..87656d6
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+to use urmom is quite easy...
diff --git a/TODO b/TODO
new file mode 100644 (file)
index 0000000..a0fc005
--- /dev/null
+++ b/TODO
@@ -0,0 +1,15 @@
+- be smarter about changes (an existing commit can never change the diff page).
+- add raw link to latest files: raw/file...
+- add summary page?
+- add diffstat to diff page? + and - lines summary?
+- escape < > ' " etc, maybe even use CDATA ?
+- shorter date format for logs.html page.
+- speed up generating files.
+- 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???
+- no tarballs, snapshots and such.
+- able to add link to git url: git://url... per project.
diff --git a/logo.png b/logo.png
new file mode 100644 (file)
index 0000000..a7bc302
Binary files /dev/null and b/logo.png differ
diff --git a/style.css b/style.css
new file mode 100644 (file)
index 0000000..0fa610c
--- /dev/null
+++ b/style.css
@@ -0,0 +1,23 @@
+body {
+       font-family: sans-serif;
+       color: #00ff00;
+       background-color: #000;
+}
+
+h1 {
+       vertical-align: middle;
+}
+
+a {
+       color: #00ff00;
+}
+
+hr {
+       color: #00ff00;
+       background-color: #00ff00;
+       border-top: 1px solid #00ff00;
+}
+
+pre {
+       font-family: monospace;
+}
diff --git a/urmoms b/urmoms
new file mode 100644 (file)
index 0000000..3e30cda
--- /dev/null
+++ b/urmoms
@@ -0,0 +1,117 @@
+#!/bin/sh
+
+# DEBUG
+#set -e -x
+
+baseurl="http://cow.codemadness.org/gitlog/"
+# TODO: read .git/description.
+description="sbase"
+logdir="../gitlog"
+
+header() {
+       cat <<!__EOF__
+<!DOCTYPE HTML>
+<html dir="ltr" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<meta http-equiv="Content-Language" content="en" />
+<title>${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> |
+<a href="log.html">Log</a> |
+<a href="stats.html">Stats</a> |
+<a href="readme.html">README</a> |
+<a href="license.html">LICENSE</a>
+</center>
+<hr/>
+<pre>
+!__EOF__
+}
+
+footer() {
+       cat <<!__EOF__
+</pre>
+<hr/>
+<i><center>Powered by urmoms vibrator</center></i>
+</body>
+</html>
+!__EOF__
+}
+
+mkdir -p "${logdir}"
+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
+
+       d=$(dirname "${file}")
+       mkdir -p "${logdir}/file/${d}"
+
+       header > "${logdir}/file/${file}.html"
+       git show "${firstcommit}"...master "${file}" | \
+               sed -E 's@^commit (.*)$@commit <a href="commit/\1.html">\1</a>@g' >> "${logdir}/file/${file}.html"
+       footer >> "${logdir}/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">%H</a></td><td>%an</td><td>%s</td></tr>' >> "${logdir}/log.html"
+printf '</table>' >> "${logdir}/log.html"
+footer >> "${logdir}/log.html"
+
+# make diff for each commit (all files).
+mkdir -p "${logdir}/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"
+done 
+
+# make index with file links.
+header >> "${logdir}/index.html"
+git ls-tree -r master | sed -E 's@     (.*)$@  <a href="file/\1.html">\1</a>@g' >> "${logdir}/index.html"
+footer >> "${logdir}/index.html"
+
+# readme page
+# find README file.
+readme=""
+for f in README README.md readme.md; do
+       test -e "${f}" && readme="${f}"
+done
+# make page.
+header > "${logdir}/readme.html"
+if test x"${readme}" != x""; then
+       cat "${readme}" >> "${logdir}/readme.html"
+else
+       echo "no README file found" >> "${logdir}/readme.html"
+fi
+footer >> "${logdir}/readme.html"
+
+# license page
+# find LICENSE file.
+license=""
+for f in LICENSE LICENSE.md; do
+       test -e "${f}" && license="${f}"
+done
+# make page.
+header > "${logdir}/license.html"
+if test x"${readme}" != x""; then
+       cat "${license}" >> "${logdir}/license.html"
+else
+       echo "unknown license" >> "${logdir}/license.html"
+fi
+footer >> "${logdir}/license.html"
+
+# stats (authors).
+header > "${logdir}/stats.html"
+git shortlog -n -s >> "${logdir}/stats.html"
+footer >> "${logdir}/stats.html"