]> git.donarmstrong.com Git - zsh.git/blob - .zsh/func/giturl
comment update
[zsh.git] / .zsh / func / giturl
1 #!/bin/sh
2 #
3 # func/giturl
4 #
5 # A convenient way to display the gitweb URL of a commit-ish, as well as the
6 # base URL and tree. Also for each argument, the tree or blob URL is printed.
7 #
8 # Copyright © 2010 martin f. krafft <madduck@madduck.net>
9 # Released under the terms of the Artistic Licence 2.0
10 #
11 # Source repository: git://git.madduck.net/etc/zsh.git
12 #
13
14 local GITWEB_BASE
15 GITWEB_BASE=http://git.madduck.net/v
16
17 local REMOTE
18 REMOTE=$(git config --get remote.origin.url)
19
20 local part
21 case "$REMOTE" in
22   madduck:pub/*|ssh://git.madduck.net/madduck/pub/*)
23     part="${REMOTE#madduck:pub/}"
24     part="${part#ssh://git.madduck.net/madduck/pub/}"
25     part="${part%.git}.git"
26     ;;
27   *)
28     echo >&2 "E: I do not know how to translate $REMOTE into a gitweb URL."
29     return 1
30     ;;
31 esac
32
33 echo $GITWEB_BASE/$part
34 HASH=$(git rev-parse HEAD)
35 echo $GITWEB_BASE/$part/commitdiff/$HASH
36
37 echo $GITWEB_BASE/$part/tree/HEAD
38 for i in $@; do
39   [ -f "$i" ] && echo "$GITWEB_BASE/$part/blob/HEAD:/$i"
40   [ -d "$i" ] && echo "$GITWEB_BASE/$part/tree/HEAD:/$i"
41 done