X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/95596bda0de59feb3ddac135fbcc8720a083a86f..c402c75132be2b7f5868f68114dbe7f8f873d4e2:/.zsh/func/giturl diff --git a/.zsh/func/giturl b/.zsh/func/giturl index 26587e2..61532dc 100755 --- a/.zsh/func/giturl +++ b/.zsh/func/giturl @@ -10,20 +10,32 @@ # 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 - madduck:pub/*) part="${REMOTE#madduck:pub/}";; +local part gitweb_base oldstyle +oldstyle=0 +case "$remote" in + madduck:pub/*) + gitweb_base=http://git.madduck.net/v + part="${remote#madduck:pub/}" + ;; + 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/}" + oldstyle=1 + ;; *) echo >&2 "E: I do not know how to translate $REMOTE into a gitweb URL." return 1 ;; esac -HASH=$(git rev-parse HEAD) -echo $GITWEB_BASE/$part/commitdiff/$HASH +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";; +esac