You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcpcfg/lib/set_debian_info

50 lines
1.4 KiB

[%
# vi: ft=tt2
# Sets the Debian release information for the node calling this function.
#
# This sets the global variables:
# debian.codename
# debian.version
-%]
[% PERL -%]
my $version_file = '/etc/debian_version';
my $debian_codename;
my $debian_version;
my $debian_version_major;
open my $hh, '<', $version_file or die "Error opening $version_file";
$debian_version = <$hh>;
close $hh;
chomp $debian_version;
die "Fatal error retrieving Debian release version from $version_file"
unless length $debian_version;
my %versions = (
12 => 'bookworm',
13 => 'trixie',
);
my %codenames = map { $versions{$_} => $_ } keys %versions;
if ($debian_version =~ m/^([0-9]+)\.[0-9]+/) {
$debian_version_major = $1;
$debian_codename = $versions{$debian_version_major};
die "Error: unsupported Debian release $debian_version"
unless defined $debian_codename;
} elsif ($debian_version =~ m{^([[:alnum:]]+)/sid}) {
$debian_codename = $1;
$debian_version_major = $codenames{$debian_codename};
die "Error: unsupported Debian codename $debian_codename"
unless defined $debian_version_major;
} else {
die "Fatal error retrieving Debian release codename [$debian_version]";
}
$stash->update({
debian => {
version => $debian_version_major,
codename => $debian_codename,
}
});
[% END -%]