Modifying $COMP_WORDBREAKS in completion script is not the recommended
as it is a global variable and the modification could affect the behavior
of other completion scripts. As a workaround, this commit uses the
_get_comp_words_by_ref which allows user to exclude characters out of
$COMP_WORDBREAKS and reassemble input command line. However, as a side
effect, the bash completion module cannot handle characters defined in
$COMP_WORDBREAKS (e.g. ':' and '=') correctly in the resulting completions.
Thusly, we need to trim the colon-word and equal-word prefixes from reply.
Signed-off-by: Alex Wang <alexw@nicira.com>
The ovs-vsctl-bashcomp script does not work properly on bash (version
< 4.0). This commit adds test for the bash version and avoids running
the script/test when the bash version is not supported.
Signed-off-by: Alex Wang <alexw@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
This patch adds bash command-line completion script for ovs-vsctl.
Therein, codes are added to ovs-vsctl to allow it to print the
options and command arguments. The ovs-vsctl-bashcomp.bash will
parse the vsctl command and complete on the user input.
The completion script can do the following::
- display available completions and complete on user input for
global/local options, sub-commands, and arguments.
- query database and expand keywords like 'table/record/column/key'
to available completions.
- deal with argument relations like 'one and more', 'zero or one'.
- complete multiple ovs-vsctl commands cascaded via '--'.
To use the script, either copy it inside /etc/bash_completion.d/
or manually run it via . ovs-vsctl-bashcomp.bash.
Signed-off-by: Peter Amidon <peter@picnicpark.org>
Signed-off-by: Alex Wang <alexw@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>