From 7910fa4e1b96204fc725921d84e23561c178167b Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Wed, 4 Aug 2010 14:11:03 +0000 Subject: allow loopback modules list to be returned by sub --- lib/MDV/Draklive/Initrd.pm | 2 +- lib/MDV/Draklive/Loopback.pm | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/MDV/Draklive/Initrd.pm b/lib/MDV/Draklive/Initrd.pm index 93642dc..35f95e2 100644 --- a/lib/MDV/Draklive/Initrd.pm +++ b/lib/MDV/Draklive/Initrd.pm @@ -139,7 +139,7 @@ sub create_media_specific_initrd { nls_modules($live), $media->get_media_fs_module, @{$media->get_media_setting('extra_modules') || []}, - (map { @{$loop_types{$_}{modules} || []} } uniq(map { $_->{type} } @{$live->{mount}{dirs} || []})), + (map { MDV::Draklive::Loopback::get_loop_modules($live, $_) } uniq(map { $_->{type} } @{$live->{mount}{dirs} || []})), ($live->{mount}{overlay} ? @{$MDV::Draklive::Overlay::overlay{$live->{mount}{overlay}}{modules} || []} : ()); my @additional_modules = map { if_(m!([^/]+)\.ko(?:\.gz)?!, list_modules::filename2modname($1)) } @{$live->{system}{additional_modules}}; diff --git a/lib/MDV/Draklive/Loopback.pm b/lib/MDV/Draklive/Loopback.pm index ebcc8be..6fb592d 100644 --- a/lib/MDV/Draklive/Loopback.pm +++ b/lib/MDV/Draklive/Loopback.pm @@ -122,4 +122,13 @@ our %loop_types; }, ); +sub get_loop_modules { + my ($live, $type) = @_; + my $modules = $loop_types{$_}{modules}; + my $type = ref $modules; + return $type eq 'CODE' ? $modules->($live) : + $type eq 'ARRAY' ? @$modules : + (); +} + 1; -- cgit v1.2.1