From bf358666d2256213d59bd75c6194aaff41bc9893 Mon Sep 17 00:00:00 2001 From: David Paleino Date: Mon, 2 May 2011 17:22:35 +0200 Subject: [PATCH] =?UTF-8?q?New=20completion=20for=20phing=20(Elan=20Ruusam?= =?UTF-8?q?=C3=A4e,=20Alioth:=20#312910)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES | 1 + completions/phing | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 completions/phing diff --git a/CHANGES b/CHANGES index d77900d7..efefa4a4 100644 --- a/CHANGES +++ b/CHANGES @@ -36,6 +36,7 @@ bash-completion (2.x) * Complete filenames after commands in rrdtool (Debian: #577933) * ant: handle "extension-point" the same as "target" tag (Petr Kozelka Alioth: #313105) + * New completion for phing (Elan Ruusamäe, Alioth: #312910) [ Freddy Vulto ] * Improve __reassemble_comp_words_by_ref() to not create words of diff --git a/completions/phing b/completions/phing new file mode 100644 index 00000000..c400b3a6 --- /dev/null +++ b/completions/phing @@ -0,0 +1,58 @@ +# bash completion for phing + +have phing || return + +_phing() +{ + local cur prev buildfile i + _init_completion || return + + case $prev in + -buildfile|-file|-f) + _filedir 'xml' + return 0 + ;; + -logfile) + _filedir + return 0 + ;; + -logger|-listener|-D|-inputhandler) + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-help -version \ + -quiet -verbose -debug -logfile -logger -listener \ + -buildfile -D -inputhandler \ + -find' \ + -- "$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]} + 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/.*/dev/null )" \ + -- "$cur" ) ) + fi +} && +complete -F _phing phing + +# 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