franta-hg@81: #!/usr/bin/perl franta-hg@81: franta-hg@81: # Parses Java source code from STDIN and generates script for BASH completion franta-hg@81: # Input (in this order): franta-hg@81: # info/globalcode/sql/dk/Constants.java franta-hg@81: # info/globalcode/sql/dk/formatting/* franta-hg@81: # info/globalcode/sql/dk/CLIParser.java franta-hg@81: franta-hg@81: use strict; franta-hg@81: use warnings; franta-hg@81: franta-hg@81: my $configDir = "~"; franta-hg@81: franta-hg@81: while (<>) { franta-hg@81: if (/"(.*?)".*? \/\/\s*bash-completion:dir/) { franta-hg@81: $configDir .= "/$1"; franta-hg@81: last; franta-hg@81: } franta-hg@81: } franta-hg@81: franta-hg@81: print 'have sql-dk && franta-hg@81: _sql_dk() franta-hg@81: { franta-hg@81: local cur prev franta-hg@81: franta-hg@81: COMPREPLY=() franta-hg@81: cur=${COMP_WORDS[COMP_CWORD]} franta-hg@81: prev=${COMP_WORDS[COMP_CWORD-1]} franta-hg@81: franta-hg@81: case "$prev" in franta-hg@81: --db) franta-hg@81: COMPREPLY=( $( echo "TODO_DATABASE_NAMES" ) ); franta-hg@81: # ' . $configDir .' franta-hg@81: return 0 franta-hg@81: ;; franta-hg@81: --formatter) franta-hg@81: COMPREPLY=( $( compgen -W " franta-hg@81: '; franta-hg@81: franta-hg@81: while (<>) { franta-hg@81: if (/"(.*?)".*? \/\/\s*bash-completion:formatter/) { franta-hg@81: print " $1\n"; franta-hg@81: } franta-hg@81: last if (/\/\/\s*bash-completion:options/); franta-hg@81: } franta-hg@81: franta-hg@81: franta-hg@81: print ' " -- $cur ) ); franta-hg@81: return 0 franta-hg@81: ;; franta-hg@81: esac; franta-hg@81: franta-hg@81: COMPREPLY=( $( compgen -W " franta-hg@81: '; franta-hg@81: franta-hg@81: while (<>) { franta-hg@81: if (/"(.*?)".*? \/\/\s*bash-completion:option/) { franta-hg@81: print " $1\n"; franta-hg@81: } franta-hg@81: } franta-hg@81: franta-hg@81: print ' " -- $cur ) ) franta-hg@81: return 0 franta-hg@81: franta-hg@81: } franta-hg@81: franta-hg@81: complete -F _sql_dk sql-dk franta-hg@81: ';