[pve-devel] applied: [PATCH common v2 3/9] cli: refactor comand name helper

Wolfgang Bumiller w.bumiller at proxmox.com
Fri Dec 29 12:33:03 CET 2017


applied

On Mon, Dec 18, 2017 at 10:21:37AM +0100, Thomas Lamprecht wrote:
> use shorter and also a bit faster methods to expand and get comand
> names
> 
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
> 
>  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 f50611d..c382969 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 { /^\Q$cmd\E/ } keys %$def;
> +	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 ({
> -- 
> 2.11.0




More information about the pve-devel mailing list