From 330ddb47b4752eab2dc2f824cfb078bcca70eb60 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 9 Mar 2010 17:24:53 +0100 Subject: Add vsh and baseconv functions --- .zsh/func/vcsh | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 .zsh/func/vcsh (limited to '.zsh/func/vcsh') diff --git a/.zsh/func/vcsh b/.zsh/func/vcsh new file mode 100755 index 0000000..31da22d --- /dev/null +++ b/.zsh/func/vcsh @@ -0,0 +1,48 @@ +#!/bin/zsh +# +# func/vcsh +# +# set the context for vcs-home operations +# +# Copyright © 1994–2008 martin f. krafft +# Released under the terms of the Artistic Licence 2.0 +# +# Source repository: git://git.madduck.net/etc/zsh.git +# +# Adapted by Tobias Klauser +# +# Source repository: git://git.distanz.ch/dotfiles/zsh.git + +local FGIT_BASE="$HOME/src/dotfiles" + +if [ "${1:---help}" = '--help' ] || [ $# -gt 1 ]; then + echo "usage: ${0##*/} reponame" >&2 + echo "usage: ${0##*/} -l" >&2 + [ "$1" = '--help' ] + return $? + +elif [ "$1" = '-l' ]; then + for i in $FGIT_BASE/*.git; do + i="${i#$FGIT_BASE/}" + echo "${i%.git}" + done + return 0 +fi + +if [ ! -d "$FGIT_BASE/${1}.git" ]; then + echo E: no repository found for "$1" >&2 + return 2 +fi + +old_GIT_DIR="${GIT_DIR:-}" +old_GIT_WORK_TREE="${GIT_WORK_TREE:-}" + +export GIT_DIR="$FGIT_BASE/${1}.git" +export GIT_WORK_TREE="$GIT_DIR/$(git config --get core.worktree)" + +$SHELL -i || : + +GIT_DIR="$old_GIT_DIR" +[ -z "$GIT_DIR" ] && unset GIT_DIR +GIT_WORK_TREE="$old_GIT_WORK_TREE" +[ -z "$GIT_WORK_TREE" ] && unset GIT_WORK_TREE -- cgit v1.2.3-54-g00ecf