From: martin f. krafft Date: Fri, 30 Jul 2010 20:31:13 +0000 (+0200) Subject: Merge branch 'master' of ssh://git.madduck.net/madduck/pub/etc/zsh X-Git-Url: https://git.madduck.net/etc/zsh.git/commitdiff_plain/9344d99cba5549c443f50159044706a777e502bc?ds=inline;hp=-c Merge branch 'master' of ssh://git.madduck.net/madduck/pub/etc/zsh Conflicts: .zsh/func/giturl --- 9344d99cba5549c443f50159044706a777e502bc diff --combined .zsh/func/giturl index 61532dc,c4dd9de..c85674a --- a/.zsh/func/giturl +++ b/.zsh/func/giturl @@@ -2,7 -2,8 +2,8 @@@ # # func/giturl # - # a convenient way to display the gitweb URL of a commit-ish + # A convenient way to display the gitweb URL of a commit-ish, as well as the + # base URL and tree. Also for each argument, the tree or blob URL is printed. # # Copyright © 2010 martin f. krafft # Released under the terms of the Artistic Licence 2.0 @@@ -10,32 -11,31 +11,49 @@@ # Source repository: git://git.madduck.net/etc/zsh.git # -local GITWEB_BASE -GITWEB_BASE=http://git.madduck.net/v +local remote; remote=$(git config --get remote.origin.url) -local REMOTE -REMOTE=$(git config --get remote.origin.url) - -local part -case "$REMOTE" in +local part gitweb_base oldstyle +oldstyle=0 +case "$remote" in - madduck:pub/*) + madduck:pub/*|ssh://git.madduck.net/madduck/pub/*) - part="${REMOTE#madduck:pub/}" + gitweb_base=http://git.madduck.net/v + part="${remote#madduck:pub/}" + part="${part#ssh://git.madduck.net/madduck/pub/}" + part="${part%.git}.git" ;; + debian:*|*://git.debian.org/git/*|*@git.debian.org/git/*) + gitweb_base=http://git.debian.org + part="${remote#debian:}" + part="${part#*://git.debian.org/git/}" + part="${part#*@git.debian.org/git/}" ++ part="${part%.git}.git" + oldstyle=1 + ;; *) echo >&2 "E: I do not know how to translate $REMOTE into a gitweb URL." return 1 ;; esac -echo $GITWEB_BASE/$part -HASH=$(git rev-parse HEAD) -echo $GITWEB_BASE/$part/commitdiff/$HASH +local hash +hash=$(git rev-parse HEAD) -echo $GITWEB_BASE/$part/tree/HEAD -for i in $@; do - [ -f "$i" ] && echo "$GITWEB_BASE/$part/blob/HEAD:/$i" - [ -d "$i" ] && echo "$GITWEB_BASE/$part/tree/HEAD:/$i" -done +case "$oldstyle" in - 0) echo "$gitweb_base/$part/commitdiff/$hash";; - *) echo "$gitweb_base/?p=$part;a=commitdiff;h=$hash";; ++ 0) ++ echo "$gitweb_base/$part/commitdiff/$hash" ++ echo "$gitweb_base/$part/tree/HEAD" ++ for i in $@; do ++ [ -f "$i" ] && echo "$gitweb_base/$part/blob/HEAD:/$i" ++ [ -d "$i" ] && echo "$gitweb_base/$part/tree/HEAD:/$i" ++ done ++ ;; ++ *) ++ echo "$gitweb_base/?p=$part;a=commitdiff;h=$hash" ++ echo "$gitweb_base/?p=$part;a=tree;h=HEAD" ++ for i in $@; do ++ [ -f "$i" ] && echo "$gitweb_base/?p=$part;a=blob;h=HEAD;f=$i" ++ [ -d "$i" ] && echo "$gitweb_base/?p=$part;a=tree;h=HEAD:f=$i" ++ done ++ ;; +esac