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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
#compdef ant -value-,ANT_ARGS,-default-
# Apache Ant version 1.7.1
local curcontext="$curcontext" state line expl ret=1
typeset -A opt_args
local buildfile classpath cp userjars importedfiles target='*:target:->target' targets tmp
(( $+functions[_ant_targets] )) ||
_ant_targets() {
importedfiles=( $(sed -n "s/ *<import[^>]* file=[\"']\([^\"']*\)[\"'].*/\1/p" < $1) )
# Tweaked to omit targets beginning with "-" that can't
# be invoked from the command line; see zsh-workers/24129.
sed -n "s/ *<target[^>]* name=[\"']\([^-][^\"']*\)[\"'].*/\1/p" $1
if (( $#importedfiles )) ; then
( cd $1:h
for file in $importedfiles ; do
expanded=${file//\${ant.home}/$ANT_HOME}
if [[ "$expanded" != "$file" ]]; then
file=$expanded
fi
if [[ -f $file ]]; then
_ant_targets $file
fi
done )
fi
}
if [[ $service = *ANT_ARGS* ]]; then
compset -q
words=( fake "$words[@]" )
(( CURRENT++ ))
unset target
fi
_arguments -C \
'(- *)'{-h,-help,--h,--help}'[display help information]' \
'--noconfig[suppress sourcing of configuration files]' \
'--usejikes[enable use of jikes by default, unless set explicitly in configuration files]' \
'--execdebug[print ant exec line generated by this launch script]' \
'(-p -projecthelp *)'{-p,-projecthelp}'[print project help information]' \
'(- *)-version[display version information]' \
'(- *)-diagnostics[print information helpful to diagnosis or report problems]' \
'(-q -quiet)'{-q,-quiet}'[be extra quiet]' \
'(-s -silent)'{-s,-silent}'[print nothing but task outputs and build failures]' \
'(-v -verbose)'{-v,-verbose}'[be extra verbose]' \
'(-d -debug)'{-d,-debug}'[print debugging information]' \
'(-e -emacs)'{-e,-emacs}'[produce logging information without adornments]' \
'*-lib[specify a path to search for jars and classes]:class path:->classpath' \
'(-l -logfile)'{-l,-logfile}'[use specified file for log]:logfile:_files' \
'-logger[specify the class which is to perform logging]:class:->class' \
'*-listener[add an instance of specified class as a project listener]:class:->class' \
'-noinput[do not allow interactive input]' \
'(-f -file -buildfile -s -find)'{-f,-file,-buildfile}'[use specified build file]:build file:_files -g "*.xml(-.)"' \
'*-D+[specify property with value to use]:property:->property' \
'(-k -keep-going)'{-keep-going,-k}'[execute all targets that do not depend on failed target(s)]' \
'-propertyfile[load all properties from specified file with -D properties taking precedence]:property file:_files -g "*.properties(-.)"' \
'-inputhandler[specify class which will handle input requests]:class:->class' \
'(-s -find -f -file -buildfile)'{-s,-find}'[search for specified build file towards the root of filesystem]:build file:(build.xml)' \
'-nice[specify a niceness value for the main thread]:niceness value [5]:({1..10})' \
'-nouserlib[run ant without using the jar files from ${user.home}/.ant/lib]' \
'-noclasspath[run ant without using CLASSPATH]' \
'-autoproxy[Java1.5+: use the OS proxy settings]' \
"-main[override Ant's normal entry point]:class:->class" \
$target && ret=0
case $state in
class)
if (( ! $+opt_args[-nouserlib] )); then
userjars=( $HOME/.ant/lib/*.jar )
fi
if (( ! $+opt_args[-noclasspath] )); then
classpath=$CLASSPATH
fi
cp=( $opt_args[-lib] $userjars $ANT_HOME/lib/*.jar $classpath )
cp=${(j.:.)cp:-' '}
_java_class -classpath $cp && ret=0
;;
classpath)
compset -P '*:'
compset -S ':*'
_alternative \
"classpath:${state}:_path_files -qS: -g '*.(jar|zip)(-.)'" \
"classpath:${state}:_path_files -r': ' -/" && ret=0
;;
property)
if compset -P 1 '*='; then
_default && ret=0
else
_message -e properties 'property name'
fi
;;
target)
if [[ -n $opt_args[(I)(-s|-find)] ]]; then
buildfile=( (../)#${(v)opt_args[(I)(-s|-find)]:-build.xml}(N[-1]) )
else
buildfile=${(v)opt_args[(I)(-f|-file|-buildfile)]:-build.xml}
fi
if [[ -f $buildfile ]]; then
if zstyle -t ":completion:${curcontext}:targets" call-command; then
# Run ant -projecthelp also passing any of -find, -s, -buildfile, -file
# or -f options.
# Parse output into an array of the format "target:description".
# For the array to be set with correct argument boundaries, the entire
# set statement needs to be eval'd. On Cygwin, need to kill \r's output
# from Java or parsing will fail.
eval set -A tmp "${$(_call_program targets "$words[1]" -buildfile $buildfile -projecthelp |
while read target desc
do
# This loop reads ant -projecthelp output from versions 1.3 to 1.6
ln="${target}${desc:+:$desc}"
[[ $target = "" ]] && continue # skip blank lines
case $ln in
(Buildfile:*)
buildfile=$desc
;;
(Default:target:*)
# with version 1.5, target is on the same line
default_target="${${desc/target:/}# }"
# versions 1.3 and 1.4 with default target on a separate line
if [[ -z $default_target ]]; then
read junk
read default_target junk
fi
# Output target again indicating its the default one.
print -rn -- "${(qq):-${default_target}:(Default target)} "
;;
(Searching:*|Main:targets:|Subtargets:|BUILD:SUCCESSFUL|Total:time:*)
;;
(*)
# Return target and description
print -rn -- "${(qq)ln} "
;;
esac
done
)//$'\015'}"
_describe 'target' tmp && ret=0
else
targets=( $(_ant_targets $buildfile) )
_wanted targets expl target compadd -a targets && ret=0
fi
else
_message -e targets target
fi
;;
esac
return ret
|