ref: dcb7b6e458c412c7e7026e2e1974ab610febea15
parent: 93f12f1973aac3ff75f9c485105704c449e33fdb
author: glenda <glenda@9front.local>
date: Sun Nov 29 09:34:15 EST 2020
Update repo page to show last 5 commits, file listing, and readme
--- a/gitonline.rc
+++ b/gitonline.rc
@@ -102,18 +102,42 @@
html_emit_end
}
+fn readme {+ echo '
+ <b>Description</b>
+ <pre>'
+ htcat $1
+ echo '</pre>'
+}
+
fn repo_view {html_emit_start
- reponame=$1
+ gitref=HEAD
+ repo=`{echo $1 | sed 's,^/,,'}echo '
- <h1>'$reponame'</h1>
- <a href="'$reponame'/shortlog">'Shortlog'</a>
- <a href="'$reponame'/browse">'browse'</a>'
+ <h1>'$repo'</h1>'
+
+ if (test -f $repo/README) {+ readme $repo/README
+ }
+ if not if(test -f $repo/.git/README) {+ readme $repo/.git/README
+ }
+
+ echo '<b>Last 5 commits</b> (<a href="/'$repo'/shortlog">shortlog</a>)'
+
+ shortlog 5
+
+ echo '
+ <b>Files</b> (<a href="/'$repo'/browse">browse</a>)'
+ filepath=/
+ filetree
+
html_emit_end
}
-fn repo_browse {- html_emit_start
+fn filetree {+ pwd=`{pwd}cd $repo
git/fs
@@ -121,69 +145,80 @@
if (! ref=`{resolveref $gitref}) { `{resolveref $gitref}echo '<b>'$status'</b>'
- html_emit_end
- exit
}
-
- echo '<h2> Browsing '$repo' at commit '$gitref': '$filepath'</h2>'
- gitpath=/mnt/git/$ref/tree$filepath
- if (test -d $gitpath) {- cd $gitpath
- files=`$nl{ls -F | sed 's/\*//g'}- echo '<pre>'
- for (f in $files) {- echo '<a href="'$f'">'$f'</a>'
+ if not {+ gitpath=/mnt/git/$ref/tree$filepath
+ if (test -d $gitpath) {+ cd $gitpath
+ files=`$nl{ls -F | sed 's/\*//g'}+ echo '<pre>'
+ for (f in $files) {+ echo '<a href="'$f'">'$f'</a>'
+ }
+ echo '</pre>'
}
- echo '</pre>'
+ if not if (test -f $gitpath) {+ echo '<code><pre class="code">'
+ htcat $gitpath
+ echo '</pre></code>'
+ }
+ if not {+ echo 'Sorry, could not find '$gitpath
+ }
}
- if not if (test -f $gitpath) {- echo '<code><pre class="code">'
- htcat $gitpath
- echo '</pre></code>'
- }
- if not {- echo 'Sorry, could not find '$gitpath
- }
- html_emit_end
+ cd $pwd
}
-fn repo_shortlog {+fn repo_browse {html_emit_start
+ echo '<h2> Browsing '$repo' at commit '$gitref': '$filepath'</h2>'
+ filetree
+ html_emit_end
+}
+
+fn shortlog {+ commitcount=$1
+ pwd=`{pwd}cd $repo
git/fs
if (! ref=`{resolveref $gitref}) { `{resolveref $gitref}echo '<b>'$status'</b>'
- html_emit_end
- exit
}
-
- echo '
- <b>Showing the last 100 commits</b>
- <table>
- <tr>
- <th>Date</th>
- <th>Author</th>
- <th>Short message</th>
- <th>Commit hash</th>
- </tr>'
- commithash=`{cat /mnt/git/$ref/hash | sed 1q}- count=()
- while (! ~ $#commithash 0 && ! ~ $#count 100) {- count=($count 1)
- message=`{htcat /mnt/git/object/$commithash/msg | sed 1q}- date=`{date -i `{mtime /mnt/git/object/$commithash/msg | awk '{print $1}'}}- author=`"{htcat /mnt/git/object/$commithash/author | awk '{print $1}'}+ if not {echo '
- <tr>
- <td>'$date'</td>
- <td>'$author'</td>
- <td>'$"message'</td>
- <td><a href="/'$repo'/showcommit/'$commithash'">'$commithash'</a></td>
- </tr>'
- commithash=`{cat /mnt/git/object/$commithash/parent | sed 1q}+ <table>
+ <tr>
+ <th>Date</th>
+ <th>Author</th>
+ <th>Short message</th>
+ <th>Commit hash</th>
+ </tr>'
+ commithash=`{cat /mnt/git/$ref/hash | sed 1q}+ count=()
+ while (! ~ $#commithash 0 && ! ~ $#count $commitcount) {+ count=($count 1)
+ message=`{htcat /mnt/git/object/$commithash/msg | sed 1q}+ date=`{date -i `{mtime /mnt/git/object/$commithash/msg | awk '{print $1}'}}+ author=`"{htcat /mnt/git/object/$commithash/author | awk '{print $1}'}+ echo '
+ <tr>
+ <td>'$date'</td>
+ <td>'$author'</td>
+ <td>'$"message'</td>
+ <td><a href="/'$repo'/showcommit/'$commithash'">'$commithash'</a></td>
+ </tr>'
+ commithash=`{cat /mnt/git/object/$commithash/parent | sed 1q}+ }
+ echo '</table>'
}
- echo '</table>'
+ cd $pwd
+}
+
+fn repo_shortlog {+ html_emit_start
+ echo '<b>Showing the last 100 commits</b>'
+ shortlog '100'
html_emit_end
}
--
⑨