X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/c402c75132be2b7f5868f68114dbe7f8f873d4e2..9344d99cba5549c443f50159044706a777e502bc:/.zsh/func/giturl diff --git a/.zsh/func/giturl b/.zsh/func/giturl index 61532dc..c85674a 100755 --- a/.zsh/func/giturl +++ b/.zsh/func/giturl @@ -2,7 +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 @@ -15,15 +16,18 @@ local remote; remote=$(git config --get remote.origin.url) local part gitweb_base oldstyle oldstyle=0 case "$remote" in - madduck:pub/*) + madduck:pub/*|ssh://git.madduck.net/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 ;; *) @@ -36,6 +40,20 @@ local hash hash=$(git rev-parse HEAD) 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