This commit is contained in:
Olivier Cornelis 2026-02-19 11:30:03 +00:00 committed by GitHub
commit 9715eae1b7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 35 additions and 0 deletions

35
sanoid
View File

@ -1056,6 +1056,12 @@ sub init {
$rawtemplate =~ s/\s+$//g;
my $template = 'template_'.$rawtemplate;
# Check if template exists
if (!exists $ini{$template}) {
die "FATAL ERROR: Template '$rawtemplate' referenced in section [$section] does not exist in $conf_file.\n";
}
foreach my $key (keys %{$ini{$template}}) {
if ($key =~ /template|recursive/) {
warn "ignored key '$key' from '$rawtemplate' template.\n";
@ -1175,6 +1181,35 @@ sub init {
}
}
# Check for unused templates
my %defined_templates;
my %used_templates;
# Collect all defined templates
foreach my $section (keys %ini) {
if ($section =~ /^template_(.+)$/) {
$defined_templates{$1} = 1;
}
}
# Collect all used templates
foreach my $section (keys %ini) {
if ($section !~ /^template_/ && defined $ini{$section}{'use_template'}) {
my @templates = split (' *, *', $ini{$section}{'use_template'});
foreach my $rawtemplate (@templates) {
$rawtemplate =~ s/\s+$//g; # strip trailing whitespace
$used_templates{$rawtemplate} = 1;
}
}
}
# Check for unused templates (excluding template_default)
foreach my $template (keys %defined_templates) {
if ($template ne 'default' && !exists $used_templates{$template}) {
die "FATAL ERROR: Template '$template' is defined but never used in $conf_file.\n";
}
}
return %config;
} # end sub init