X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/fae90a2a15dde4a7472a5353857f1497c63e00db..26ffc95f66633e04e63ddce54c6161c5ce80b6b7:/.zsh/func/giturl diff --git a/.zsh/func/giturl b/.zsh/func/giturl deleted file mode 100644 index 5f29ac0..0000000 --- a/.zsh/func/giturl +++ /dev/null @@ -1,79 +0,0 @@ -#!/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 -# Contributions from Yaroslav O. Halchenko -# -# Source repository: http://git.madduck.net/v/etc/zsh.git -# - -local branch remote remote_name -branch=$(git symbolic-ref -q HEAD); branch="${branch#refs/heads/}" -# Obtain remote which current branch tracks, origin if not known -remote_name=$(git config branch.$branch.remote || echo origin) -remote=$(git config --get remote.$remote_name.url) - -local part gitweb_base style commitkw -style=gitweb -commitkw=commitdiff # keyword for commit -- differ for github -argssep=: # separator for arguments of the query -case "$remote" in - 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/*|*://alioth.debian.org/git/*|*@git.debian.org/git/*) - gitweb_base=http://git.debian.org - part="${remote#debian:}" - part="${part#*://git.debian.org/git/}" - part="${part#*://alioth.debian.org/git/}" - part="${part#*@git.debian.org/git/}" - part="${part%.git}.git" - style=gitweb_old - ;; - github:*|*://github.com/*|*@github.com[/:]*) - gitweb_base=http://github.com - part="${remote#github:}" - part="${part#*://github.com/}" - part="${part#*@github.com[:/]}" - part="${part%.git}" - style=github - commitkw=commit - argssep= - ;; - *) - echo >&2 "E: I do not know how to translate $remote into a gitweb URL." - return 1 - ;; -esac - -local hash -hash=$(git rev-parse HEAD) - -case "$style" in - gitweb|github) - echo "$gitweb_base/$part" - echo "$gitweb_base/$part/$commitkw/$hash" - echo "$gitweb_base/$part/tree/HEAD" - for i in $@; do - [ -f "$i" ] && echo "$gitweb_base/$part/blob/HEAD${argssep}/$i" - [ -d "$i" ] && echo "$gitweb_base/$part/tree/HEAD${argssep}/$i" - done - ;; - gitweb_old) - echo "$gitweb_base/?p=$part" - 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;hb=HEAD;f=$i" - [ -d "$i" ] && echo "$gitweb_base/?p=$part;a=tree;hb=HEAD;f=$i" - done - ;; -esac