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

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Nov 6 14:54:53 CET 2017


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);
-- 
2.11.0





More information about the pve-devel mailing list