X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2FPVE%2FPodParser.pm;h=febcfd28349c5562448c6ce0f382801d6764c92b;hb=2ec536145633455d5041e17231603196f0ef163a;hp=8ad05980f71ea63f1a28ca99b703db63d45028c6;hpb=7b1e4b04b2afd171e840bebde194735629608215;p=pve-common.git diff --git a/src/PVE/PodParser.pm b/src/PVE/PodParser.pm index 8ad0598..febcfd2 100644 --- a/src/PVE/PodParser.pm +++ b/src/PVE/PodParser.pm @@ -49,8 +49,11 @@ sub generate_typetext { my $typetext = ''; my (@optional, @required); foreach my $key (sort keys %$schema) { - next if !$schema->{$key}->{format_description} && - !$schema->{$key}->{typetext}; + my $entry = $schema->{$key}; + next if !$entry->{format_description} && + !$entry->{typetext} && + !$entry->{enum} && + $entry->{type} ne 'boolean'; if ($schema->{$key}->{optional}) { push @optional, $key; } else { @@ -66,11 +69,17 @@ sub generate_typetext { $key = $alias; $entry = $schema->{$key}; } - if (my $desc = $entry->{format_description}) { + if (!defined($entry->{typetext})) { $typetext .= $entry->{default_key} ? "[$key=]" : "$key="; + } + if (my $desc = $entry->{format_description}) { $typetext .= "<$desc>"; } elsif (my $text = $entry->{typetext}) { $typetext .= $text; + } elsif (my $enum = $entry->{enum}) { + $typetext .= '<' . join('|', @$enum) . '>'; + } elsif ($entry->{type} eq 'boolean') { + $typetext .= '<1|0>'; } else { die "internal error: neither format_description nor typetext found"; } @@ -125,6 +134,7 @@ sub generate_property_text { my $data = ''; foreach my $key (sort keys %$schema) { my $d = $schema->{$key}; + next if $d->{alias}; my $desc = $d->{description}; my $typetext = schema_get_type_text($d); $desc = 'No description available' if !$desc; @@ -133,7 +143,7 @@ sub generate_property_text { return $data; } -# generta epop from JSON schema properties +# generate pod from JSON schema properties sub dump_properties { my ($properties) = @_;