]> git.plutz.net Git - busy/blobdiff - templates/Subversion.page
porting busy to confetti framework
[busy] / templates / Subversion.page
diff --git a/templates/Subversion.page b/templates/Subversion.page
new file mode 100755 (executable)
index 0000000..72f8189
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/zsh
+
+cat <<SVNEND
+  <div id="LEFT">
+    <h1>Path:</h1>
+    <a href='?p=Subversion&amp;i=/&amp;r=$rev'>[root]</a> 
+    $(tmp="$url"
+    until [ -z "$tmp" -o "$tmp" = '//' -o "$tmp" = './' ]; do
+      echo "<a href='?p=Subversion&amp;i=$tmp&amp;r=$rev'>/$(basename "$tmp")</a> "
+      tmp="$(dirname "$tmp")/"
+    done |tac)
+    <hr>
+    <h1>Revisions:</h1>
+    $(for i in {1.."$lastrev"}; do
+      echo "<a href='?p=Subversion&amp;i=$url&amp;r=$i'>$i</a>"
+    done)
+  </div>
+
+  <div id="RIGHT">
+    <h1>Changelog:</h1><hr>
+    $(svn log $(egrep -q '^(.*/|)$' <<<"$url" && echo '') "${baseuri}/${url}" |\
+      sed -rn '2,${s:^-+$:</div>:g;
+      s:^r([0-9]+) \| ([a-zA-Z0-9]+) \| ([0-9: -]+) .+$:<div class="changelog"><h2>Revision \1 by \2<br>at \3</h2>:g;p}')
+  </div>
+
+  <div id="MAIN">
+  <div class='wikitext'><h1>$(basename "$url"), Revision "$rev":</h1>
+  $(if (egrep -q '^(.*/|)$' <<<"$url"); then #are we showing a directory
+    svn ls -r "$rev" "${baseuri}/${url}" |sed -r "s:^.*$:<a href='?p=Subversion\&amp;i=$url/&\&amp;r=$rev'>&</a><br>:g"
+    echo '</div>'
+  else #or are we showing a file
+    lang=$(source-highlight --lang-list |cut -d\  -f1 |grep -x "$(sed 's:.*\.::g' <<<"$url")" || echo sh)
+    grep -q '\.' <<<"$url" || lang=txt
+    svn cat -r "$rev" "${baseuri}/${url}" |source-highlight -s "$lang"
+  fi)
+  </div></div>
+SVNEND