From c03b7509063843b92ec292d2dd86308f669b2ab4 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 6 Jul 2018 09:30:07 +0200 Subject: [PATCH 1/1] PVE::RESTHandler::generate_usage_str - new static method to generate usage from $info This is useful to generate usage information with pveclient, where we do not have handler classes at all. Signed-off-by: Dietmar Maurer --- src/PVE/RESTHandler.pm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/PVE/RESTHandler.pm b/src/PVE/RESTHandler.pm index c303c38..715404a 100644 --- a/src/PVE/RESTHandler.pm +++ b/src/PVE/RESTHandler.pm @@ -566,7 +566,7 @@ my $compute_param_mapping_hash = sub { # generate usage information for command line tools # -# $name ... the name of the method +# $info ... method info # $prefix ... usually something like "$exename $cmd" ('pvesm add') # $arg_param ... list of parameters we want to get as ordered arguments # on the command line (or single parameter name for lists) @@ -577,13 +577,13 @@ my $compute_param_mapping_hash = sub { # 'full' ... text, include description # 'asciidoc' ... generate asciidoc for man pages (like 'full') # $param_cb ... mapping for string parameters to file path parameters -sub usage_str { - my ($self, $name, $prefix, $arg_param, $fixed_param, $format, $param_cb) = @_; +sub getopt_usage { + my ($info, $prefix, $arg_param, $fixed_param, $format, $param_cb) = @_; $format = 'long' if !$format; - my $info = $self->map_method_by_name($name); my $schema = $info->{parameters}; + my $name = $info->{name}; my $prop = $schema->{properties}; my $out = ''; @@ -679,6 +679,14 @@ sub usage_str { return $out; } +sub usage_str { + my ($self, $name, $prefix, $arg_param, $fixed_param, $format, $param_cb) = @_; + + my $info = $self->map_method_by_name($name); + + return getopt_usage($info, $prefix, $arg_param, $fixed_param, $format, $param_cb); +} + # generate docs from JSON schema properties sub dump_properties { my ($prop, $format, $style, $filterFn) = @_; -- 2.39.2