From: Dietmar Maurer Date: Tue, 12 Jun 2018 06:07:50 +0000 (+0200) Subject: fix bash completion for simple command classes like 'list'. X-Git-Url: https://git.proxmox.com/?p=pve-client.git;a=commitdiff_plain;h=f7b8bab772851b5c307a9e9be0bc00c62053dfd1 fix bash completion for simple command classes like 'list'. --- diff --git a/PVE/CLIHandler.pm b/PVE/CLIHandler.pm index 904e54e..801f530 100644 --- a/PVE/CLIHandler.pm +++ b/PVE/CLIHandler.pm @@ -369,7 +369,6 @@ my $print_bash_completion = sub { }; # positional arguments - $pos++ if $simple_cmd; if ($pos < scalar(@$arg_param)) { my $pname = $arg_param->[$pos]; &$print_parameter_completion($pname); diff --git a/pveclient b/pveclient index 4a0ae50..52f40a7 100755 --- a/pveclient +++ b/pveclient @@ -69,10 +69,16 @@ if (my $method = $method_map->{$cmd}) { if ($ENV{COMP_LINE} =~ m/^(.*pveclient\s+($cmdlist)\s+)(.*)$/) { my $cmd = $2; my $class = $cli_class_handlers->{$cmd} || die "internal error"; - $ENV{COMP_LINE} = "pveclient $3"; - $ENV{COMP_POINT} = length($ENV{COMP_LINE}); - @ARGV = ('bashcomplete', 'pveclient', $ARGV[1], $ARGV[2]); + if ($cmd eq 'list') { # simple commands + $ENV{COMP_LINE} = "pveclient $3"; + $ENV{COMP_POINT} = length($ENV{COMP_LINE}); + @ARGV = ('bashcomplete', 'pveclient', $ARGV[1], $ARGV[2]); + } else { + $ENV{COMP_LINE} = "pveclient $3"; + $ENV{COMP_POINT} = length($ENV{COMP_LINE}); + @ARGV = ('bashcomplete', 'pveclient', $ARGV[1], $ARGV[2]); + } $class->run_cli_handler(); } else {