]> git.donarmstrong.com Git - zsh.git/blobdiff - .zsh/func/giturl
comment update
[zsh.git] / .zsh / func / giturl
index 26587e2087ad179b3862323afbc6d2c86b06924f..c4dd9de735d6830cf77a3d454cde3c74db615187 100755 (executable)
@@ -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 <madduck@madduck.net>
 # Released under the terms of the Artistic Licence 2.0
@@ -18,12 +19,23 @@ REMOTE=$(git config --get remote.origin.url)
 
 local part
 case "$REMOTE" in
-  madduck:pub/*) part="${REMOTE#madduck:pub/}";;
+  madduck:pub/*|ssh://git.madduck.net/madduck/pub/*)
+    part="${REMOTE#madduck:pub/}"
+    part="${part#ssh://git.madduck.net/madduck/pub/}"
+    part="${part%.git}.git"
+    ;;
   *)
     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
+
+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