URI: 
       improvements: - stagit-gopher - A git gopher frontend. (mirror)
  HTML git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR LICENSE
       ---
   DIR commit bda4633633a0701bbd2f7861674a8e612d961fb7
   DIR parent 5734f7aca10abefa680497a5cb0bdaf538b6476a
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       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(-)
       ---
   DIR 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>@g' >> "${htmldir}/file/${file}.html"
       -        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">%H</a></td><td>%an</td><td>%s</td></tr>' >> "${htmldir}/log.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.html">\1</a>@g' >> "${htmldir}/commit/${commit}.html"
                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}'commit/%H.html">%H</a></td><td>%an</td><td>%s</td></tr>' >> "${htmldir}/log.html"
       +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">\1</a>@g' >> "${htmldir}/files.html"
       +printf '<table><tr><td><b>Mode</b></td><td><b>Name</b></td><td><b>Size</b></td><td></td></tr>' >> "${htmldir}/files.html"
       +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}'commit/%H.html#file-'${file}'">'${file}'</a></td><td>'${size}'</td><td><a href="file/'${file}'">[plain]</a></td></tr>' "${file}"
       +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"