summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_vcsh
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_vcsh')
-rw-r--r--Completion/Unix/Command/_vcsh89
1 files changed, 0 insertions, 89 deletions
diff --git a/Completion/Unix/Command/_vcsh b/Completion/Unix/Command/_vcsh
deleted file mode 100644
index 00aed7d28..000000000
--- a/Completion/Unix/Command/_vcsh
+++ /dev/null
@@ -1,89 +0,0 @@
-#compdef vcsh
-
-function __vcsh_repositories () {
- local -a repos
- repos=( ${(f)"$(_call_program repositories vcsh list)"} )
- _describe -t repositories 'repository' repos
-}
-
-function _vcsh-clone () {
- _default #TODO
-}
-
-local func
-for func in help init list list-tracked pull push version; do
- _vcsh-$func() { _nothing }
-done
-for func in delete enter list-tracked-by upgrade write-gitignore; do
- _vcsh-$func() { (( CURRENT == 2 )) && __vcsh_repositories }
-done
-
-function _vcsh-rename () {
- case $CURRENT in
- 2) __vcsh_repositories ;;
- 3) _message "new repository name" ;;
- *) _nothing ;;
- esac
-}
-
-function _vcsh-run () {
- (( CURRENT == 2 )) && __vcsh_repositories
- if (( CURRENT >= 3 )); then
- words=( "${(@)words[3,-1]}" )
- (( CURRENT -= 2 ))
- _complete
- fi
-}
-
-function _vcsh () {
- local curcontext="${curcontext}" ret=1
- local state vcshcommand
- local -a args subcommands
-
- subcommands=(
- "clone:clone an existing repository"
- "delete:delete an existing repository"
- "enter:enter repository; spawn new <\$SHELL>"
- "help:display help"
- "init:initialize an empty repository"
- "list:list all local vcsh repositories"
- "list-tracked:list all files tracked by vcsh"
- "list-tracked-by:list files tracked by a repository"
- "pull:pull from all vcsh remotes"
- "rename:rename a repository"
- "run:run command with <\$GIT_DIR> and <\$GIT_WORK_TREE> set"
- "upgrade:upgrade repository to currently recommended settings"
- "version:print version information"
- "which:find <substring> in name of any tracked file"
- "write-gitignore:write .gitignore.d/<repo> via git ls-files"
- )
-
- args=(
- '-c[source <file> prior to other configuration files]:config files:_path_files'
- '-d[enable debug mode]'
- '-v[enable verbose mode]'
- '*:: :->subcommand_or_options_or_repo'
- )
-
- _arguments -C ${args} && ret=0
-
- if [[ ${state} == "subcommand_or_options_or_repo" ]]; then
- if (( CURRENT == 1 )); then
- _describe -t subcommands 'vcsh sub-commands' subcommands && ret=0
- __vcsh_repositories && ret=0
- else
- vcshcommand="${words[1]}"
- if ! (( ${+functions[_vcsh-$vcshcommand]} )); then
- # There is no handler function, so this is probably the name
- # of a repository. Act accordingly.
- _dispatch git git && ret=0
- else
- curcontext="${curcontext%:*:*}:vcsh-${vcshcommand}:"
- _call_function ret _vcsh-${vcshcommand}
- fi
- fi
- fi
- return ret
-}
-
-_vcsh "$@"