diff options
Diffstat (limited to 'lib/OpenSLX/DistroUtils/Base.pm')
-rw-r--r-- | lib/OpenSLX/DistroUtils/Base.pm | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/lib/OpenSLX/DistroUtils/Base.pm b/lib/OpenSLX/DistroUtils/Base.pm index 90cad7a0..f4eb45c8 100644 --- a/lib/OpenSLX/DistroUtils/Base.pm +++ b/lib/OpenSLX/DistroUtils/Base.pm @@ -356,5 +356,38 @@ sub generateInitFile } +sub getKernelVersion +{ + my $self = shift; + my $kernelPath = shift; + + + my $newestKernelFile; + my $newestKernelFileSortKey = ''; + my $kernelPattern = '{vmlinuz,kernel-genkernel-x86}-*'; + foreach my $kernelFile (glob("$kernelPath/$kernelPattern")) { + next unless $kernelFile =~ m{ + (?:vmlinuz|x86)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?) + }x; + my $sortKey + = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5); + if ($newestKernelFileSortKey lt $sortKey) { + $newestKernelFile = $kernelFile; + $newestKernelFileSortKey = $sortKey; + } + } + + if (!defined $newestKernelFile) { + die _tr("unable to pick a kernel-file from path '%s'!", $kernelPath); + } + + $newestKernelFile =~ /.*?-([.\-0-9]*)-([a-zA-Z]*?)$/; + my $kernel = {}; + $kernel->{'version'} = $1; + $kernel->{'suffix'} = $2; + return $kernel; + +} + -1;
\ No newline at end of file +1; |