summaryrefslogtreecommitdiffstats
path: root/initramfs/OpenSLX/MakeInitRamFS/Engine.pm
diff options
context:
space:
mode:
Diffstat (limited to 'initramfs/OpenSLX/MakeInitRamFS/Engine.pm')
-rw-r--r--initramfs/OpenSLX/MakeInitRamFS/Engine.pm17
1 files changed, 7 insertions, 10 deletions
diff --git a/initramfs/OpenSLX/MakeInitRamFS/Engine.pm b/initramfs/OpenSLX/MakeInitRamFS/Engine.pm
index 43374e9e..efa8d1de 100644
--- a/initramfs/OpenSLX/MakeInitRamFS/Engine.pm
+++ b/initramfs/OpenSLX/MakeInitRamFS/Engine.pm
@@ -58,18 +58,15 @@ sub new
$self->{'system-name'} =~ m{^([^\-]+)-([^:\-]+)}
or die "unable to extract distro-info from $self->{'system-name'}!";
- $self->{'distro-name'} = $1;
+ $self->{'distro-name'} = lc($1);
$self->{'distro-ver'} = $2;
- my %distroMap = (
- 'debian' => 'Debian',
- 'suse' => 'SUSE',
- 'ubuntu' => 'Ubuntu',
- );
- my $distroModule = $distroMap{$self->{'distro-name'}} || 'Base';
- $self->{distro} = instantiateClass(
- "OpenSLX::MakeInitRamFS::Distro::$distroModule"
- );
+ my $distroModule
+ = 'OpenSLX::MakeInitRamFS::Distro::' . ucfirst($self->{'distro-name'});
+ if (!eval { $self->{distro} = instantiateClass($distroModule); }) {
+ $self->{distro}
+ = instantiateClass('OpenSLX::MakeInitRamFS::Distro::Base');
+ }
$self->{'lib-scanner'}
= OpenSLX::LibScanner->new({ 'root-path' => $self->{'root-path'} });