diff --git a/debian/api-test-server.bash-completion b/debian/api-test-server.bash-completion new file mode 100644 index 00000000..f84ffd49 --- /dev/null +++ b/debian/api-test-server.bash-completion @@ -0,0 +1 @@ +debian/pbs.bash-completion pbs diff --git a/debian/pbs.bash-completion b/debian/pbs.bash-completion new file mode 100644 index 00000000..76e6ab51 --- /dev/null +++ b/debian/pbs.bash-completion @@ -0,0 +1,8 @@ +# pbs bash completion + +# see http://tiswww.case.edu/php/chet/bash/FAQ +# and __ltrim_colon_completions() in /usr/share/bash-completion/bash_completion +# this modifies global var, but I found no better way +COMP_WORDBREAKS=${COMP_WORDBREAKS//:} + +complete -o default -C 'pbs bashcomplete' pbs diff --git a/debian/rules b/debian/rules index 90c27649..fdda9fe9 100755 --- a/debian/rules +++ b/debian/rules @@ -5,5 +5,5 @@ %: - dh $@ --with=systemd + dh $@ --with=systemd --with=bash-completion diff --git a/src/cli/command.rs b/src/cli/command.rs index 8929de59..1463f5e8 100644 --- a/src/cli/command.rs +++ b/src/cli/command.rs @@ -87,6 +87,11 @@ pub fn run_cli_command(def: &CommandLineInterface) -> Result<(), Error> { let args: Vec = std::env::args().skip(1).collect(); + if !args.is_empty() && args[0] == "bashcomplete" { + //Fixme: implement bash completion + return Ok(()); + } + match def { CommandLineInterface::Simple(cli_cmd) => handle_simple_command(cli_cmd, args), CommandLineInterface::Nested(map) => handle_nested_command(map, args),