]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/CLIHandler.pm
use better name for string_param_file_mapping (param_mapping).
[pve-common.git] / src / PVE / CLIHandler.pm
index 33b7aca04742e9b9846cfb2d7740f7156607a94d..1fd7b025223e197fd86b6efb3afc6d748fd2d7d1 100644 (file)
@@ -117,8 +117,9 @@ sub generate_usage_str {
     $separator //= '';
     $indent //= '';
 
-    my $can_read_pass = $cli_handler_class->can('read_password');
-    my $param_mapping_func = $cli_handler_class->can('string_param_file_mapping');
+    my $read_password_func = $cli_handler_class->can('read_password');
+    my $param_mapping_func = $cli_handler_class->can('param_mapping') ||
+       $cli_handler_class->can('string_param_file_mapping');
 
     my ($subcmd, $def) = resolve_cmd($cmd);
 
@@ -138,7 +139,7 @@ sub generate_usage_str {
                    $str .= $indent;
                    $str .= $class->usage_str($name, "$prefix $cmd", $arg_param,
                                              $fixed_param, $format,
-                                             $can_read_pass, $param_mapping_func);
+                                             $read_password_func, $param_mapping_func);
                    $oldclass = $class;
 
                } elsif (defined($def->{$cmd}->{alias}) && ($format eq 'asciidoc')) {
@@ -162,7 +163,7 @@ sub generate_usage_str {
 
            $str .= $indent;
            $str .= $class->usage_str($name, $prefix, $arg_param, $fixed_param, $format,
-                                     $can_read_pass, $param_mapping_func);
+                                     $read_password_func, $param_mapping_func);
        }
        return $str;
     };
@@ -457,7 +458,7 @@ sub setup_environment {
 }
 
 my $handle_cmd  = sub {
-    my ($args, $pwcallback, $preparefunc, $param_mapping_func) = @_;
+    my ($args, $read_password_func, $preparefunc, $param_mapping_func) = @_;
 
     $cmddef->{help} = [ __PACKAGE__, 'help', ['extra-args'] ];
 
@@ -489,13 +490,13 @@ my $handle_cmd  = sub {
     $abort->("unknown command '$cmd_str'") if !$class;
 
     my $prefix = "$exename $cmd_str";
-    my $res = $class->cli_handler($prefix, $name, $cmd_args, $arg_param, $uri_param, $pwcallback, $param_mapping_func);
+    my $res = $class->cli_handler($prefix, $name, $cmd_args, $arg_param, $uri_param, $read_password_func, $param_mapping_func);
 
     &$outsub($res) if $outsub;
 };
 
 my $handle_simple_cmd = sub {
-    my ($args, $pwcallback, $preparefunc, $param_mapping_func) = @_;
+    my ($args, $read_password_func, $preparefunc, $param_mapping_func) = @_;
 
     my ($class, $name, $arg_param, $uri_param, $outsub) = @{$cmddef};
     die "no class specified" if !$class;
@@ -524,7 +525,7 @@ my $handle_simple_cmd = sub {
 
     &$preparefunc() if $preparefunc;
 
-    my $res = $class->cli_handler($name, $name, \@ARGV, $arg_param, $uri_param, $pwcallback, $param_mapping_func);
+    my $res = $class->cli_handler($name, $name, \@ARGV, $arg_param, $uri_param, $read_password_func, $param_mapping_func);
 
     &$outsub($res) if $outsub;
 };
@@ -545,8 +546,9 @@ sub run_cli_handler {
 
     my $preparefunc = $params{prepare};
 
-    my $pwcallback = $class->can('read_password');
-    my $param_mapping_func = $class->can('string_param_file_mapping');
+    my $read_password_func = $class->can('read_password');
+    my $param_mapping_func = $cli_handler_class->can('param_mapping') ||
+       $class->can('string_param_file_mapping');
 
     $exename = &$get_exe_name($class);
 
@@ -556,9 +558,9 @@ sub run_cli_handler {
     $cmddef = ${"${class}::cmddef"};
 
     if (ref($cmddef) eq 'ARRAY') {
-       &$handle_simple_cmd(\@ARGV, $pwcallback, $preparefunc, $param_mapping_func);
+       &$handle_simple_cmd(\@ARGV, $read_password_func, $preparefunc, $param_mapping_func);
     } else {
-       &$handle_cmd(\@ARGV, $pwcallback, $preparefunc, $param_mapping_func);
+       &$handle_cmd(\@ARGV, $read_password_func, $preparefunc, $param_mapping_func);
     }
 
     exit 0;