]> git.proxmox.com Git - pve2-api-doc.git/blobdiff - data/extractapi.pl
updates for 4.0 final
[pve2-api-doc.git] / data / extractapi.pl
index 48e67c796862d63cbd56294dce8bd8ab4b97c43c..0488ea940ad54ed6802e098a98278f0c17c61301 100755 (executable)
@@ -5,7 +5,39 @@ use PVE::RESTHandler;
 use PVE::API2;
 use JSON;
 
-my $tree = PVE::RESTHandler::api_dump('PVE::API2');
+sub cleanup_tree {
+    my ($h) = @_;
+
+    my $class = ref($h);
+    return $h if !$class;
+
+    if ($class eq 'ARRAY') {
+       my $res = [];
+       foreach my $el (@$h) {
+           push @$res, cleanup_tree($el);
+       }
+       return $res;
+    } elsif ($class eq 'HASH') {
+       my $res = {};
+       foreach my $k (keys %$h) {
+           if (my $class = ref($h->{$k})) {
+               if ($class eq 'CODE') {
+                   next if $k eq 'completion';
+               }
+               $res->{$k} = cleanup_tree($h->{$k});
+           } else {
+               $res->{$k} = $h->{$k};
+           }
+       }
+       return $res;
+    } elsif ($class eq 'Regexp') {
+       return "$h"; # return string representation
+    } else {
+       die "unknown class '$class'\n";
+    }
+}
+
+my $tree = cleanup_tree(PVE::RESTHandler::api_dump('PVE::API2'));
 
 print "var pveapi = " . to_json($tree, {pretty => 1}) . ";\n\n";