about summary refs log tree commit diff
path: root/Functions/VCS_Info/vcs_info_printsys
blob: b44b9c9b4da5b2b4d3f26c844325b0578fd07037 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
## vim:ft=zsh
## Written by Frank Terbeck <ft@bewatermyfriend.org>
## Distributed under the same BSD-ish license as zsh itself.

emulate -L zsh
setopt extendedglob

local sys
local -a disabled enabled
local -A vcs_comm

zstyle -a ":vcs_info:-init-:${1:-default}:-all-" "enable" enabled
(( ${#enabled} == 0 )) && enabled=( all )

if (( ${+VCS_INFO_backends} == 0 )); then
  autoload -Uz vcs_info_setsys
  vcs_info_setsys
fi

if [[ -n ${(M)enabled:#(#i)all} ]] ; then
    enabled=( ${VCS_INFO_backends} )
    zstyle -a ":vcs_info:-init-:${1:-default}:-all-" "disable" disabled
else
    for sys in ${VCS_INFO_backends} ; do
        [[ -z ${(M)enabled:#$sys} ]] && disabled+=( ${sys} )
    done
    enabled=( ${VCS_INFO_backends} )
fi

print -l '## list of supported version control backends:' \
         '## disabled systems are prefixed by a hash sign (#)'

for sys in ${VCS_INFO_backends} ; do
    [[ -n ${(M)disabled:#${sys}} ]] && printf '#'
    printf '%s\n' ${sys}
done

print -l '## flavours (cannot be used in the enable or disable styles; they' \
         '## are enabled and disabled with their master [git-svn -> git])'   \
         '## they *can* be used in contexts: '\'':vcs_info:git-svn:*'\''.'

for sys in ${VCS_INFO_backends} ; do
    VCS_INFO_detect_${sys} --flavours
done
return 0