diff options
Diffstat (limited to 'perl-install/modules/modprobe_conf.pm')
| -rw-r--r-- | perl-install/modules/modprobe_conf.pm | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/perl-install/modules/modprobe_conf.pm b/perl-install/modules/modprobe_conf.pm index 2db68122d..7989096f8 100644 --- a/perl-install/modules/modprobe_conf.pm +++ b/perl-install/modules/modprobe_conf.pm @@ -1,7 +1,8 @@ -package modules::modprobe_conf; # $Id$ +package modules::modprobe_conf; use log; use common; +# perl_checker: require modules::any_conf our @ISA = qw(modules::any_conf); @@ -21,7 +22,7 @@ sub get_above { my (undef, $after) = parse_non_virtual($module, $conf->{$module}{install}) or return; my ($l, $_other_cmds) = partition_modprobes($after); - join(' ', @$l); + @$l; } sub set_above { my ($conf, $module, $o_modules) = @_; @@ -42,19 +43,23 @@ sub set_above { } } +sub create_from_old() { + #- use module-init-tools script + run_program::rooted($::prefix, "/sbin/generate-modprobe.conf", ">", file()); +} + sub read { my ($type, $o_file) = @_; my $file = $o_file || do { my $f = $::prefix . file(); if (!-e $f && -e "$::prefix/etc/modules.conf") { - #- use module-init-tools script - run_program::rooted($::prefix, "/sbin/generate-modprobe.conf", ">", file()); + create_from_old(); } $f; }; - my $conf = modules::any_conf::read($type, $file); + my $conf = modules::any_conf::read_handled($type, $file); extract_probeall_field($conf); @@ -98,7 +103,7 @@ sub parse_non_virtual { sub unparse_non_virtual { my ($module, $mode, $before, $after) = @_; ($before ? "$before; " : '') - . "/sbin/modprobe --first-time $mode $module" + . (($before || $after) ? "/sbin/modprobe --first-time $mode $module" : '') . ($after ? " && { $after; /bin/true; }" : ''); } |
