+our $standard_output_options = {
+ 'output-format' => PVE::APIClient::JSONSchema::get_standard_option('pve-output-format'),
+ noheader => {
+ description => "Do not show column headers (for 'text' format).",
+ type => 'boolean',
+ optional => 1,
+ default => 1,
+ },
+ noborder => {
+ description => "Do not draw borders (for 'text' format).",
+ type => 'boolean',
+ optional => 1,
+ default => 1,
+ },
+ quiet => {
+ description => "Suppress printing results.",
+ type => 'boolean',
+ optional => 1,
+ },
+ 'human-readable' => {
+ description => "Call output rendering functions to produce human readable text.",
+ type => 'boolean',
+ optional => 1,
+ default => 1,
+ }
+};
+
+sub add_standard_output_properties {
+ my ($propdef, $list) = @_;
+
+ $propdef //= {};
+
+ $list //= [ keys %$standard_output_options ];
+
+ my $res = { %$propdef }; # copy
+
+ foreach my $opt (@$list) {
+ die "no such standard output option '$opt'\n" if !defined($standard_output_options->{$opt});
+ die "detected overwriten standard CLI parameter '$opt'\n" if defined($res->{$opt});
+ $res->{$opt} = $standard_output_options->{$opt};
+ }
+
+ return $res;
+}
+
+sub extract_standard_output_properties {
+ my ($data) = @_;
+
+ my $options = {};
+ foreach my $opt (keys %$standard_output_options) {
+ $options->{$opt} = delete $data->{$opt} if defined($data->{$opt});
+ }
+
+ return $options;
+}
+