]>
git.proxmox.com Git - proxmox-acme.git/blob - src/test/verify-dnsapi-plugins-in-schema.pl
a9628612bd67951080628b734bca7dfd146ea44b
10 use PVE
::Tools
qw(dir_glob_foreach file_get_contents);
12 my $dnsapi_path = '../acme.sh/dnsapi';
14 die "cannot find dnsapi path '$dnsapi_path'!\n" if ! -d
$dnsapi_path;
16 my $acmesh_plugins = [];
17 dir_glob_foreach
($dnsapi_path, qr/dns_(\S+)\.sh/, sub {
18 my ($file, $provider) = @_;
19 push @$acmesh_plugins, $provider;
22 my $DNS_API_CHALLENGE_SCHEMA_FN = '../dns-challenge-schema.json';
23 my $defined_plugins = from_json
(PVE
::Tools
::file_get_contents
($DNS_API_CHALLENGE_SCHEMA_FN));
26 # first check for missing ones, delete from hash so we can easily see if a plug got removed/renamed
27 my $printed_missing = 0;
28 for my $provider (sort @$acmesh_plugins) {
29 my $schema = delete $defined_plugins->{$provider};
30 if (!defined($schema)) {
31 print STDERR
"missing (also adapt makefile!):\n" if !$printed_missing;
32 print STDERR
" '$provider' => {},\n";
38 my $printed_extra = 0;
39 for my $provider (sort keys %$defined_plugins) {
40 print STDERR
"extra:\n" if !$printed_extra;
41 print STDERR
" $provider\n";
46 die "schema not in sync with available plugins!\n" if !$ok;
48 print STDERR
"OK: DNS challenge schema in sync with available plugins.\n";