summaryrefslogtreecommitdiff
path: root/completions/ant
diff options
context:
space:
mode:
Diffstat (limited to 'completions/ant')
-rw-r--r--completions/ant64
1 files changed, 29 insertions, 35 deletions
diff --git a/completions/ant b/completions/ant
index 132c4390..96ef8172 100644
--- a/completions/ant
+++ b/completions/ant
@@ -1,13 +1,9 @@
-# bash completion for ant
+# bash completion for ant and phing -*- shell-script -*-
-have ant &&
-{
_ant()
{
- local cur prev buildfile i
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
+ local cur prev words cword
+ _init_completion || return
case $prev in
-buildfile|-file|-f)
@@ -23,48 +19,46 @@ _ant()
return 0
;;
-nice)
- COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9 10' -- "$cur" ) )
+ COMPREPLY=( $( compgen -W '{1..10}' -- "$cur" ) )
+ return 0
+ ;;
+ -lib)
+ _filedir -d
return 0
;;
- -lib|-logger|-listener|-D|-inputhandler|-main)
+ -logger|-listener|-inputhandler|-main|-find|-s)
return 0
;;
esac
- if [[ "$cur" == -* ]]; then
- COMPREPLY=( $( compgen -W '-help -projecthelp -version -diagnostics \
- -quiet -verbose -debug -emacs -lib -logfile -logger -listener \
- -noinput -buildfile -D -keep-going -propertyfile -inputhandler \
- -find -s -nice -nouserlib -noclasspath -autoproxy -main' \
- -- "$cur" ) )
+ if [[ $cur == -D* ]]; then
+ return 0
+ elif [[ "$cur" == -* ]]; then
+ COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) )
else
# available targets completion
# find which buildfile to use
- buildfile=build.xml
- for (( i=1; i < COMP_CWORD; i++ )); do
- if [[ "${COMP_WORDS[i]}" == -@(?(build)file|f) ]]; then
- buildfile=${COMP_WORDS[i+1]}
+ local buildfile=build.xml i
+ for (( i=1; i < cword; i++ )); do
+ if [[ "${words[i]}" == -@(?(build)file|f) ]]; then
+ buildfile=${words[i+1]}
break
fi
done
[ ! -f $buildfile ] && return 0
# parse buildfile for targets
- # some versions of sed complain if there's no trailing linefeed,
- # hence the 2>/dev/null
- COMPREPLY=( $( compgen -W "$( cat $buildfile | tr "'\t\n>" "\" \n" | \
- sed -ne 's/.*<target .*name="\([^"]*\).*/\1/p' 2>/dev/null )" \
- -- "$cur" ) )
- fi
-}
-have complete-ant-cmd.pl && \
- complete -C complete-ant-cmd.pl -F _ant ant || complete -F _ant ant
-}
+ local line targets
+ while read -rd '>' line; do
+ [[ $line =~ \
+ \<(targe|extension-poin)t[[:space:]].*name=[\"\']([^\"\']+) ]] \
+ && targets+=" ${BASH_REMATCH[2]}"
+ done < $buildfile
+ COMPREPLY=( $( compgen -W '$targets' -- "$cur" ) )
+ fi
+} &&
+complete -F _ant ant phing
+type complete-ant-cmd.pl &>/dev/null && \
+ complete -C complete-ant-cmd.pl -F _ant ant || :
-# Local variables:
-# mode: shell-script
-# sh-basic-offset: 4
-# sh-indent-comment: t
-# indent-tabs-mode: nil
-# End:
# ex: ts=4 sw=4 et filetype=sh