scripts/bash_completion.pl
branchv_0
changeset 222 5ffeb18b6f85
parent 221 e38910065d55
child 250 aae5009bd0af
equal deleted inserted replaced
221:e38910065d55 222:5ffeb18b6f85
    37 	}
    37 	}
    38 }
    38 }
    39 
    39 
    40 my $databasesFile  = "$configDir/bash-completion/databases";
    40 my $databasesFile  = "$configDir/bash-completion/databases";
    41 my $formattersFile = "$configDir/bash-completion/formatters";
    41 my $formattersFile = "$configDir/bash-completion/formatters";
       
    42 my $defaultFormatterFile = "$configDir/bash-completion/default-formatter";
    42 my $formatterPropertiesDir = "$configDir/bash-completion/formatter-properties";
    43 my $formatterPropertiesDir = "$configDir/bash-completion/formatter-properties";
    43 
    44 
    44 print '#have sql-dk &&
    45 print '#have sql-dk &&
    45 _sql_dk_bash_completion_find_formatter() {
    46 _sql_dk_bash_completion_find_formatter() {
    46 	local previous
    47 	local previous
    47 	for token in "$@"; do
    48 	for token in "$@"; do
    48 		if [ "x$previous" == "x--formatter" ]; then
    49 		if [ "x$previous" == "x--formatter" ]; then
    49 			echo -n "$token";
    50 			echo -n "$token";
       
    51 			return 0;
    50 		fi
    52 		fi
    51 		previous="$token";
    53 		previous="$token";
    52 	done
    54 	done
       
    55 	
       
    56 	if [ -f '.$defaultFormatterFile.' ]; then
       
    57 		cat '.$defaultFormatterFile.'
       
    58 	fi
    53 }
    59 }
    54 
    60 
    55 _sql_dk_bash_completion_formatter_property() {
    61 _sql_dk_bash_completion_formatter_property_name() {
    56 	if [ -n "$formatter" ]; then # TODO: this does not match formatter name in apostrophes or quotes
    62 	if [ -n "$formatter" ]; then # TODO: this does not match formatter name in apostrophes or quotes
    57 		local formatter_dir='.$formatterPropertiesDir.'/$formatter
    63 		local formatter_dir='.$formatterPropertiesDir.'/$formatter
    58 		if [ -d  $formatter_dir ]; then
    64 		if [ -d  $formatter_dir ]; then
    59 			ls -1 $formatter_dir;
    65 			ls -1 $formatter_dir;
    60 		fi
    66 		fi
   103 		fi
   109 		fi
   104 		return 0
   110 		return 0
   105 		;;
   111 		;;
   106 	--formatter-property)
   112 	--formatter-property)
   107 		formatter=$( _sql_dk_bash_completion_find_formatter "${COMP_WORDS[@]}" );
   113 		formatter=$( _sql_dk_bash_completion_find_formatter "${COMP_WORDS[@]}" );
   108 		COMPREPLY=( $( compgen -W "$(_sql_dk_bash_completion_formatter_property )" -- $cur ) ); 
   114 		COMPREPLY=( $( compgen -W "$(_sql_dk_bash_completion_formatter_property_name )" -- $cur ) ); 
   109 		return 0;
   115 		return 0;
   110 		;;
   116 		;;
   111 	esac;
   117 	esac;
   112 	
   118 	
   113 	if [ "x${COMP_WORDS[COMP_CWORD-2]}" == "x--formatter-property" ]; then
   119 	if [ "x${COMP_WORDS[COMP_CWORD-2]}" == "x--formatter-property" ]; then