Author: kwilliams
Date: Sat Aug 12 05:56:10 2006
New Revision: 6788
Added:
Module-Build/trunk/contrib/
Module-Build/trunk/contrib/bash_completion.module-build
Modified:
Module-Build/trunk/Changes
Log:
Add bash completion function
Modified: Module-Build/trunk/Changes
==============================================================================
--- Module-Build/trunk/Changes (original)
+++ Module-Build/trunk/Changes Sat Aug 12 05:56:10 2006
@@ -10,6 +10,9 @@
- Upgraded to version 0.67 of version.pm. [John Peacock]
+ - Added a contrib/ directory with a bash completion function for M::B
+ actions and switches. [Julian Mehnle]
+
0.2805 Sat Jul 29 22:01:24 CDT 2006
- We now embed a copy of version.pm right in the
Added: Module-Build/trunk/contrib/bash_completion.module-build
==============================================================================
--- (empty file)
+++ Module-Build/trunk/contrib/bash_completion.module-build Sat Aug 12
05:56:10 2006
@@ -0,0 +1,39 @@
+# Module::Build Bash completion function
+# Contributed by Julian Mehnle <[EMAIL PROTECTED]>
+# $Id$
+# vim:syn=sh
+
+if
+ actions=$(
+ perl -M'Module::Build' -le 'print foreach
Module::Build->known_actions' 2>/dev/null
+ ) &&
+ properties=$(
+ perl -M'Module::Build' -le 'print foreach sort
Module::Build->valid_properties' 2>/dev/null
+ )
+then
+ eval "_Build_actions () { echo '$actions'; }"
+ eval "_Build_properties () { echo '$properties'; }"
+ unset -v actions properties
+
+ _Build () {
+ local word=${COMP_WORDS[COMP_CWORD]}
+ #local prev_word=${COMP_WORDS[COMP_CWORD-1]}
+ #local action=${COMP_WORDS[1]}
+
+ if (( $COMP_CWORD == 1 )); then
+ # Complete actions:
+ local IFS_org="$IFS"
+ IFS=$'\x1F\t\n'
+ # Avoid space (\x20) as a word separator to make the following
-S ' ' work.
+ COMPREPLY=($( compgen -W "$(_Build_actions)" -S ' ' -- "$word" ))
+ IFS="$IFS_org"
+ else
+ # Complete properties:
+ COMPREPLY=($( compgen -W "$(_Build_properties)" -S = -- "$word" ))
+ fi
+
+ return 0
+ }
+
+ complete -o nospace -F _Build Build
+fi