add helpers to verify API without starting the binary

In future, we want to have a separate PVE::CLI::$binname class
for each binary. We can then simply load that class to verify
the API:

 use PVE::CLI::pct;

 PVE::CLI::pct->verify_api();

or to generate the docs:

 PVE::CLI::pct->generate_pod_manpage();
This commit is contained in:
Dietmar Maurer 2015-09-03 15:12:03 +02:00
parent 1068aeb398
commit 1f130ba641

View File

@ -261,6 +261,39 @@ my $print_bash_completion = sub {
&$print_result(@option_list);
};
sub verify_api {
my ($class) = @_;
# simply verify all registered methods
PVE::RESTHandler::validate_method_schemas();
}
sub generate_pod_manpage {
my ($class, $podfn) = @_;
no strict 'refs';
$cmddef = ${"${class}::cmddef"};
$exename = $class;
$exename =~ s/^.*:://;
if (!defined($podfn)) {
my $cpath = "$class.pm";
$cpath =~ s/::/\//g;
foreach my $p (@INC) {
my $testfn = "$p/$cpath";
if (-f $testfn) {
$podfn = $testfn;
last;
}
}
}
die "unable to find source for class '$class'" if !$podfn;
print_pod_manpage($podfn);
}
sub handle_cmd {
my ($def, $cmdname, $cmd, $args, $pwcallback, $podfn, $preparefunc) = @_;