diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-11 22:32:06 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-11 22:32:06 +0000 |
commit | 467298a34215401cdcbb1dded51bc2aba5f1f41c (patch) | |
tree | 1923f32fbc9cf8f0b4ab291d1eb9fad5ab872d68 /contrib | |
download | Module-Build-tarball-master.tar.gz |
Module-Build-0.4214HEADModule-Build-0.4214master
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/bash_completion.module-build | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/contrib/bash_completion.module-build b/contrib/bash_completion.module-build new file mode 100644 index 0000000..ac95177 --- /dev/null +++ b/contrib/bash_completion.module-build @@ -0,0 +1,39 @@ +# Module::Build Bash completion function +# Contributed by Julian Mehnle <julian@mehnle.net> +# $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 |