bash completion: use dynamic completion derived from configuration if available
3 # Parses Java source code from STDIN and generates script for BASH completion
4 # Input (in this order):
5 # info/globalcode/sql/dk/Constants.java
6 # info/globalcode/sql/dk/formatting/*
7 # info/globalcode/sql/dk/CLIParser.java
9 # TODO: support database/formatter names with spaces
17 if (/"(.*?)".*? \/\/\s*bash-completion:dir/) {
23 my $databasesFile = "$configDir/bash-completion/databases";
24 my $formattersFile = "$configDir/bash-completion/formatters";
32 cur=${COMP_WORDS[COMP_CWORD]}
33 prev=${COMP_WORDS[COMP_CWORD-1]}
37 if [ -f '.$databasesFile.' ]; then
38 COMPREPLY=( $( compgen -W " $( cat '.$databasesFile.' ) " -- $cur ) )
43 if [ -f '.$formattersFile.' ]; then
44 COMPREPLY=( $( compgen -W " $( cat '.$formattersFile.' ) " -- $cur ) )
46 COMPREPLY=( $( compgen -W "
50 if (/"(.*?)".*? \/\/\s*bash-completion:formatter/) {
53 last if (/\/\/\s*bash-completion:options/);
57 print ' " -- $cur ) );
63 COMPREPLY=( $( compgen -W "
67 if (/"(.*?)".*? \/\/\s*bash-completion:option/) {
77 complete -F _sql_dk sql-dk