0x1949 Team - FAZEMRX - MANAGER
Edit File: ant
# bash completion for ant and phing -*- shell-script -*- _ant_parse_targets() { local line basedir [[ $1 == */* ]] && basedir=${1%/*} || basedir=. # parse buildfile for targets while read -rd '>' line; do if [[ $line =~ \<(target|extension-point)[[:space:]].*name=[\"\']([^\"\']+) ]]; then targets+=" ${BASH_REMATCH[2]}" fi done <$1 # parse imports while read -rd '>' line; do if [[ $line =~ \<import[[:space:]].*file=[\"\']([^\"\']+) ]]; then local imported_buildfile imported_buildfile="${basedir}/${BASH_REMATCH[1]}" if [[ -f $imported_buildfile ]]; then _ant_parse_targets $imported_buildfile fi fi done <$1 } _ant() { local cur prev words cword _init_completion || return case $prev in -h | -help | --h | --help | -projecthelp | -p | -version | -diagnostics) return ;; -buildfile | -file | -f) _filedir 'xml' return ;; -logfile | -l) [[ $1 != *phing || $prev != -l ]] && _filedir return ;; -propertyfile) _filedir properties return ;; -nice) COMPREPLY=($(compgen -W '{1..10}' -- "$cur")) return ;; -lib) _filedir -d return ;; -logger | -listener | -inputhandler | -main | -find | -s) return ;; esac if [[ $cur == -D* ]]; then return elif [[ $cur == -* ]]; then # The </dev/null prevents "phing -" weirdness/getting just a literal # tab displayed on complete on CentOS 6 with phing 2.6.1. COMPREPLY=( $(compgen -W '$(_parse_help "$1" -h </dev/null)' -- "$cur")) else # available targets completion # find which buildfile to use 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 if ((i == cword)); then for i in ${ANT_ARGS-}; do if [[ $prev == -@(?(build)file|f) ]]; then buildfile=$i break fi prev=$i done fi [[ ! -f $buildfile ]] && return local targets # fill targets _ant_parse_targets $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 || : # ex: filetype=sh