/bash_completion.d/ant

http://github.com/brinkman83/bashrc · #! · 74 lines · 68 code · 6 blank · 0 comment · 0 complexity · 30ba3e4d8f9aed078e7d7f4f2ac8706d MD5 · raw file

  1. # bash completion for ant
  2. have ant && {
  3. _ant()
  4. {
  5. local cur prev buildfile i
  6. COMPREPLY=()
  7. cur=`_get_cword`
  8. prev=${COMP_WORDS[COMP_CWORD-1]}
  9. case "$prev" in
  10. -buildfile|-file|-f)
  11. _filedir 'xml'
  12. return 0
  13. ;;
  14. -logfile|-l)
  15. _filedir
  16. return 0
  17. ;;
  18. -propertyfile)
  19. _filedir properties
  20. return 0
  21. ;;
  22. -nice)
  23. COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9 10' \
  24. -- "$cur" ) )
  25. return 0
  26. ;;
  27. -lib|-logger|-listener|-D|-inputhandler|-main)
  28. return 0
  29. ;;
  30. esac
  31. if [[ "$cur" == -* ]]; then
  32. COMPREPLY=( $( compgen -W '-help -h -projecthelp -p -version \
  33. -diagnostics -quiet -q -verbose -v -debug -d -emacs -e \
  34. -lib -logfile -l -logger -listener -noinput -buildfile \
  35. -file -f -D -keep-going -k -propertyfile -inputhandler \
  36. -find -s -nice -nouserlib -noclasspath -autoproxy \
  37. -main' -- "$cur" ) )
  38. else
  39. # available targets completion
  40. # find which buildfile to use
  41. buildfile=build.xml
  42. for (( i=1; i < COMP_CWORD; i++ )); do
  43. if [[ "${COMP_WORDS[i]}" == -@(?(build)file|f) ]]; then
  44. buildfile=${COMP_WORDS[i+1]}
  45. break
  46. fi
  47. done
  48. [ ! -f $buildfile ] && return 0
  49. # parse buildfile for targets
  50. # some versions of sed complain if there's no trailing linefeed,
  51. # hence the 2>/dev/null
  52. COMPREPLY=( $( compgen -W "$( cat $buildfile | \
  53. tr "'\t\n>" "\" \n" | \
  54. sed -ne 's/.*<target .*name="\([^"]*\).*/\1/p' \
  55. 2>/dev/null )" -- "$cur" ) )
  56. fi
  57. }
  58. have complete-ant-cmd.pl && \
  59. complete -C complete-ant-cmd.pl -F _ant $filenames ant || \
  60. complete -F _ant $filenames ant
  61. }
  62. # Local variables:
  63. # mode: shell-script
  64. # sh-basic-offset: 4
  65. # sh-indent-comment: t
  66. # indent-tabs-mode: nil
  67. # End:
  68. # ex: ts=4 sw=4 et filetype=sh