mirror of
https://git.proxmox.com/git/pmg-docs
synced 2025-05-24 19:09:25 +00:00
gen-pmg.conf.5-opts.pl: verify that we document all mail settings
This commit is contained in:
parent
e3d778e0c9
commit
cbb2b879c3
@ -14,6 +14,11 @@ my $types = PMG::Config::Base->lookup_types;
|
||||
my $single_section = shift;
|
||||
my $found = 0;
|
||||
|
||||
my $skiped_keys = {
|
||||
'delete' => 1,
|
||||
digest => 1,
|
||||
};
|
||||
|
||||
my $key_groups = {
|
||||
'mail-options' => [
|
||||
'mail' , {
|
||||
@ -32,6 +37,12 @@ my $key_groups = {
|
||||
message_rate_limit => 1,
|
||||
banner => 1,
|
||||
}],
|
||||
'mail-tls' => [
|
||||
'mail' , {
|
||||
tls => 1,
|
||||
tlsheader => 1,
|
||||
tlslog => 1,
|
||||
}],
|
||||
'mail-ports' => [
|
||||
'mail' , {
|
||||
int_port => 1,
|
||||
@ -46,6 +57,29 @@ my $key_groups = {
|
||||
}],
|
||||
};
|
||||
|
||||
if (1) {
|
||||
# verify if we document all mail settings
|
||||
my $plugin = PMG::Config::Base->lookup('mail');
|
||||
my $schema = $plugin->updateSchema(1);
|
||||
my $properties = $schema->{properties};
|
||||
|
||||
my $found_mail_keys = {};
|
||||
foreach my $group (keys %$key_groups) {
|
||||
my ($sec, $hash) = @{$key_groups->{$group}};
|
||||
next if $sec ne 'mail';
|
||||
foreach my $k (keys %$hash) {
|
||||
die "unknown key '$k'" if !defined($properties->{$k});
|
||||
$found_mail_keys->{$k} = 1;
|
||||
}
|
||||
}
|
||||
foreach my $k (keys %$properties) {
|
||||
next if $skiped_keys->{$k};
|
||||
next if $k =~ m/^max_(filters|policy|smtpd_in|smtpd_out)$/;
|
||||
die "undocumented key '$k'" if !defined($found_mail_keys->{$k});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
my $select_keys;
|
||||
|
||||
if ($single_section) {
|
||||
@ -72,8 +106,7 @@ foreach my $section (@$types) {
|
||||
|
||||
my $filter = sub {
|
||||
my ($key, $phash) = @_;
|
||||
return 1 if $key eq 'digest';
|
||||
return 1 if $key eq 'delete';
|
||||
return 1 if $skiped_keys->{$key};
|
||||
return 1 if $select_keys && !$select_keys->{$key};
|
||||
return 0;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user