[pve-devel] [RFC common 3/9] cli: refactor comand name helper
Dominik Csapak
d.csapak at proxmox.com
Tue Dec 5 12:04:16 CET 2017
Missed something (comment inline)
On 12/05/2017 08:56 AM, Dominik Csapak wrote:
> Reviewed-by: Dominik Csapak <d.csapak at proxmox.com>
>
> On 11/06/2017 02:54 PM, Thomas Lamprecht wrote:
>> use shorter and also a bit faster methods to expand and get comand
>> names
>> ---
>> src/PVE/CLIHandler.pm | 25 +++----------------------
>> 1 file changed, 3 insertions(+), 22 deletions(-)
>>
>> diff --git a/src/PVE/CLIHandler.pm b/src/PVE/CLIHandler.pm
>> index c787ac4..ab1440c 100644
>> --- a/src/PVE/CLIHandler.pm
>> +++ b/src/PVE/CLIHandler.pm
>> @@ -24,33 +24,14 @@ my $expand_command_name = sub {
>> my ($def, $cmd) = @_;
>> if (!$def->{$cmd}) {
>> - my $expanded;
>> - for my $k (keys(%$def)) {
>> - if ($k =~ m/^$cmd/) {
>> - if ($expanded) {
>> - $expanded = undef; # more than one match
>> - last;
>> - } else {
>> - $expanded = $k;
>> - }
>> - }
>> - }
>> - $cmd = $expanded if $expanded;
>> + my @expanded = grep { /^$cmd/ } keys %$def;
we should not directly give the $cmd variable to aregex but do something
like:
/^\Q$cmd\E/
else a command like this matches:
pveum rolead+
(or is this something we want?)
>> + return $expanded[0] if scalar(@expanded) == 1; # enforce exact match
>> }
>> return $cmd;
>> };
>> my $complete_command_names = sub {
>> - my $res = [];
>> -
>> - return if ref($cmddef) ne 'HASH';
>> -
>> - foreach my $cmd (keys %$cmddef) {
>> - next if $cmd eq 'help';
>> - push @$res, $cmd;
>> - }
>> -
>> - return $res;
>> + return [ sort keys %$cmddef ];
>> };
>> __PACKAGE__->register_method ({
>>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list