X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/1a4ff3158b1034b51d102e7253115d514325c430..06ec458ca587225479229634a2942dbaa02bf9a9:/_vcsh diff --git a/_vcsh b/_vcsh index 96ae612..9aca0f9 100644 --- a/_vcsh +++ b/_vcsh @@ -63,10 +63,12 @@ function _vcsh-rename () { function _vcsh-run () { (( CURRENT == 2 )) && __vcsh_repositories - if (( CURRENT >= 3 )); then + (( CURRENT == 3 )) && _command_names -e + if (( CURRENT >= 4 )); then + # see _precommand in zsh words=( "${(@)words[3,-1]}" ) (( CURRENT -= 2 )) - _complete + _normal fi } @@ -95,6 +97,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" @@ -136,10 +141,10 @@ function _vcsh () { # There is no handler function, so this is probably the name # of a repository. Act accordingly. # FIXME: this may want to use '_dispatch vcsh git' - _dispatch git 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