X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2FPVE%2FRESTHandler.pm;h=ad76b01e410c85587692b4b232b98a4a237a1180;hb=4845032a4636260385b59b55aabdb05c700fea2f;hp=9e0980e9832ded60bae76730a14377f28b1c2b93;hpb=408976c6f711f82895b105733b914660384160df;p=pve-common.git diff --git a/src/PVE/RESTHandler.pm b/src/PVE/RESTHandler.pm index 9e0980e..ad76b01 100644 --- a/src/PVE/RESTHandler.pm +++ b/src/PVE/RESTHandler.pm @@ -410,7 +410,7 @@ sub handle { # $format: 'asciidoc', 'pod' or 'text' # $style: 'config', 'arg' or 'fixed' my $get_property_description = sub { - my ($name, $style, $phash, $format, $hidepw) = @_; + my ($name, $style, $phash, $format, $hidepw, $fileparams) = @_; my $res = ''; @@ -426,6 +426,15 @@ my $get_property_description = sub { $type = ''; } + if ($fileparams && $type eq 'string') { + foreach my $elem (@$fileparams) { + if ($name eq $elem) { + $type = 'filepath'; + last; + } + } + } + if ($format eq 'asciidoc') { if ($style eq 'config') { @@ -508,8 +517,9 @@ my $get_property_description = sub { # 'full' ... also include description # 'asciidoc' ... generate asciidoc for man pages (like 'full') # $hidepw ... hide password option (use this if you provide a read passwork callback) +# $stringfilemap ... mapping for string parameters to file path parameters sub usage_str { - my ($self, $name, $prefix, $arg_param, $fixed_param, $format, $hidepw) = @_; + my ($self, $name, $prefix, $arg_param, $fixed_param, $format, $hidepw, $stringfilemap) = @_; $format = 'long' if !$format; @@ -564,7 +574,8 @@ sub usage_str { $base = "${name}[n]"; } - $opts .= &$get_property_description($base, 'arg', $prop->{$k}, 'text', $hidepw); + $opts .= &$get_property_description($base, 'arg', $prop->{$k}, 'text', + $hidepw, &$stringfilemap($name)); if (!$prop->{$k}->{optional}) { $args .= " " if $args; @@ -661,7 +672,7 @@ sub cli_handler { die $err if !$ec || $ec ne "PVE::Exception" || !$err->is_param_exc(); - $err->{usage} = $self->usage_str($name, $prefix, $arg_param, $fixed_param, 'short', $pwcallback); + $err->{usage} = $self->usage_str($name, $prefix, $arg_param, $fixed_param, 'short', $pwcallback, $stringfilemap); die $err; }