From: Daniel Shahaf <d.s@daniel.shahaf.name>
Date: Sun, 16 Jul 2017 18:17:05 +0000 (+0000)
Subject: completion: Pass GIT_DIR to _git.
X-Git-Url: https://git.madduck.net/code/vcsh.git/commitdiff_plain/b99d26914007cd902b92c5fe0524a233d778a724?ds=inline

completion: Pass GIT_DIR to _git.

This enables file completion at «vcsh foo add <TAB>».
---

diff --git a/_vcsh b/_vcsh
index 3022c61..bc1a7b9 100644
--- a/_vcsh
+++ b/_vcsh
@@ -95,6 +95,9 @@ function _vcsh () {
 	local state vcshcommand
 	local -a args subcommands
 
+	local VCSH_REPO_D
+        : ${VCSH_REPO_D:="${XDG_CONFIG_HOME:-"$HOME/.config"}/vcsh/repo.d"}
+
 	subcommands=(
 		"clone:clone an existing repository"
 		"commit:commit in all repositories"
@@ -135,7 +138,7 @@ function _vcsh () {
 			if ! (( ${+functions[_vcsh-$vcshcommand]} )); then
 				# There is no handler function, so this is probably the name
 				# of a repository. Act accordingly.
-				_dispatch git git
+				GIT_DIR=$VCSH_REPO_D/$words[1].git _dispatch git git
 			else
 				curcontext="${curcontext%:*:*}:vcsh-${vcshcommand}:"
 				_call_function ret _vcsh-${vcshcommand}