X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/6e5118a290be0dc24b919e8dc249aa9d763cd8b6..6b5ef0253b6858e3cb4fd265d2f7d99b597065ee:/_vcsh diff --git a/_vcsh b/_vcsh index 3022c61..1661e19 100644 --- a/_vcsh +++ b/_vcsh @@ -24,7 +24,7 @@ function _vcsh-enter () { } function _vcsh-foreach () { - _dispatch git git + _dispatch vcsh-foreach git } function _vcsh-help () { @@ -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,10 +138,11 @@ 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 + # FIXME: this may want to use '_dispatch vcsh git' + GIT_DIR=$VCSH_REPO_D/$words[1].git _dispatch git git else curcontext="${curcontext%:*:*}:vcsh-${vcshcommand}:" - _call_function ret _vcsh-${vcshcommand} + _call_function ret _vcsh-${vcshcommand} && (( ret )) fi fi fi