[pve-devel] [RFC common 8/9] cli: allow to pass sub commands to help as array

Dominik Csapak d.csapak at proxmox.com
Tue Dec 5 11:47:18 CET 2017


without this patch, help always shows the verbose help of all commands,
but this is an issue with a previous patch

Reviewed-by: Dominik Csapak <d.csapak at proxmox.com>

On 11/06/2017 02:54 PM, Thomas Lamprecht wrote:
> Improves usabillity by allowing to pass a sub command unquoted to
> the help command, e.g.:
> 
>   # pveum help user delete
> 
> without this only a quoted version worked, e.g.:
>   # pveum help "user delete"
> ---
>   src/PVE/CLIHandler.pm | 14 ++++++--------
>   1 file changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/src/PVE/CLIHandler.pm b/src/PVE/CLIHandler.pm
> index 6214d01..5111b7a 100644
> --- a/src/PVE/CLIHandler.pm
> +++ b/src/PVE/CLIHandler.pm
> @@ -155,12 +155,10 @@ __PACKAGE__->register_method ({
>       parameters => {
>   	additionalProperties => 0,
>   	properties => {
> -	    cmd => {
> -		description => "Command name",
> -		type => 'string',
> -		optional => 1,
> +	    'extra-args' => PVE::JSONSchema::get_standard_option('extra-args', {
> +		description => 'Shows help for a specific command',
>   		completion => $complete_command_names,
> -	    },
> +	    }),
>   	    verbose => {
>   		description => "Verbose output format.",
>   		type => 'boolean',
> @@ -175,9 +173,9 @@ __PACKAGE__->register_method ({
>   
>   	$assert_initialized->();
>   
> -	my $cmd = $param->{cmd};
> +	my $cmd = $param->{'extra-args'};
>   
> -	my $verbose = defined($cmd) && $cmd;
> +	my $verbose = defined($cmd) && $cmd;
>   	$verbose = $param->{verbose} if defined($param->{verbose});
>   
>   	if (!$cmd) {
> @@ -435,7 +433,7 @@ sub setup_environment {
>   my $handle_cmd  = sub {
>       my ($args, $pwcallback, $preparefunc, $stringfilemap) = @_;
>   
> -    $cmddef->{help} = [ __PACKAGE__, 'help', ['cmd'] ];
> +    $cmddef->{help} = [ __PACKAGE__, 'help', ['extra-args'] ];
>   
>       my $cmd_str = join(' ', @$args);
>       my ($cmd, $def, $cmd_args) = resolve_cmd($args);
> 





More information about the pve-devel mailing list