#!/bin/sh # # func/giturl # # 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 # # 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 part case "$REMOTE" in 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