From: Dietmar Maurer Date: Thu, 14 Jun 2018 09:12:29 +0000 (+0200) Subject: add new helper print_result X-Git-Url: https://git.proxmox.com/?p=pve-client.git;a=commitdiff_plain;h=4db9ff67bc9b370e179e568f102be9242323632a add new helper print_result --- diff --git a/PVE/APIClient/Helpers.pm b/PVE/APIClient/Helpers.pm index d8a7fba..7aec160 100644 --- a/PVE/APIClient/Helpers.pm +++ b/PVE/APIClient/Helpers.pm @@ -60,6 +60,40 @@ sub get_output_format { return $client_output_format; } +sub print_result { + my ($data, $result_schema) = @_; + + my $format = get_output_format(); + + return if $result_schema->{type} eq 'null'; + + # TODO: implement different output formats ($format) + + if ($format eq 'json') { + print to_json($data, {utf8 => 1, allow_nonref => 1, canonical => 1, pretty => 1 }); + } elsif ($format eq 'table') { + my $type = $result_schema->{type}; + if ($type eq 'object') { + die "implement me"; + } elsif ($type eq 'array') { + my $item_type = $result_schema->{items}->{type}; + if ($item_type eq 'object') { + die "implement me"; + } elsif ($item_type eq 'array') { + die "implement me"; + } else { + foreach my $el (@$data) { + print "$el\n" + } + } + } else { + print "$data\n"; + } + } else { + die "internal error: unknown output format"; # should not happen + } +} + sub get_api_definition { if (!defined($pve_api_definition)) { diff --git a/pveclient b/pveclient index 404090f..f78770b 100755 --- a/pveclient +++ b/pveclient @@ -98,12 +98,7 @@ $path_properties->{api_path} = { my $format_result = sub { my ($data) = @_; - my $format = PVE::APIClient::Helpers::get_output_format(); - - return if $path_returns->{type} eq 'null'; - - # TODO: implement different output formats ($format) - print to_json($data, {utf8 => 1, allow_nonref => 1, canonical => 1, pretty => 1 }); + PVE::APIClient::Helpers::print_result($data, $path_returns); }; __PACKAGE__->register_method ({