X-Git-Url: http://git.plutz.net/?p=busy;a=blobdiff_plain;f=pages%2FSubversion.sh;h=6f93ff2956737870bf0c440e697ac0569c00f9cb;hp=fa86d8b17140fe7f923cb5fc6d7b359fd17b60e5;hb=HEAD;hpb=f485895094cd72318b46f39689c3ba954eb37411 diff --git a/pages/Subversion.sh b/pages/Subversion.sh index fa86d8b..6f93ff2 100755 --- a/pages/Subversion.sh +++ b/pages/Subversion.sh @@ -17,13 +17,56 @@ # You should have received a copy of the GNU Affero General Public License # along with Busy. If not, see . -url="$(echo "$_GET[\"i\"]" |sed -rn '1{s:\t: :g;s:\r::g;s:\\:\\\\:g;p}')" -rev="$(echo "$_GET[\"r\"]" |sed -rn '1{/^[0-9]+$/p}')" +url="$(echo "${_GET[i]}" |sed -rn '1{s:\t: :g;s:\r::g;s:\\:\\\\:g;s:/+:/:g;p}')" +rev="$(echo "${_GET[r]}" |sed -rn '1{/^[0-9]+$/p}')" +url="${url:-/}" baseuri=$(sed -rn 's:^svnRepo=(.*)$:\1:p' project.meta) lastrev=$(svn info "$baseuri" |sed -rn 's;^Revision: *([0-9]+);\1;p') [ -z "$rev" ] && rev="$lastrev" +svn_path(){ + tmp="${url%/*}" + until [ "$tmp" = "${tmp#/}" ]; do + echo "${tmp##*/}/ " + tmp="${tmp%/*}" + done \ + | tac + echo "${url##*/}" +} + +svn_revisions(){ + for i in {1.."$lastrev"}; do + echo "$i" + done +} + +svn_changelog(){ + svn log "${baseuri}/${url}" \ + | sed -rn '2,${s:^-+$::g; + s:^r([0-9]+) \| ([a-zA-Z0-9]+) \| ([0-9: -]+) .+$:

Revision \1 by \2
at \3

:g;p}' +} + +svn_showurl(){ + if [ "${url%/}" != "$url" ]; then + # we are showing a directory + svn propget svn:externals -r "$rev" "${baseuri}/${url}" \ + | sed -rn "s;^([^ ]+) (.+)$;\2/ [external include from \1]
;p" + + svn ls -r "$rev" "${baseuri}/${url}" \ + | sed -r "s:^.*$:&
:g" + else + # we are showing a file + if [ "$url" = "${url#*.}" ] && \ + lang=txt \ + || lang="$(source-highlight --lang-list |grep -o "^${url##*.} ")" + lang="${lang:-sh}" + lang="${lang% }" + svn cat -r "$rev" "${baseuri}/${url}" \ + | source-highlight -s "$lang" + fi +} + case "$1" in title) echo "Code"