diff options
Diffstat (limited to 'perl-install/modules/any_conf.pm')
| -rw-r--r-- | perl-install/modules/any_conf.pm | 42 | 
1 files changed, 21 insertions, 21 deletions
| diff --git a/perl-install/modules/any_conf.pm b/perl-install/modules/any_conf.pm index c6174fd81..c235e84f4 100644 --- a/perl-install/modules/any_conf.pm +++ b/perl-install/modules/any_conf.pm @@ -1,17 +1,12 @@ -package modules::any_conf; # $Id$ +package modules::any_conf;  use log;  use common;  sub vnew { -    if (c::kernel_version() =~ /^\Q2.6/) { -	require modules::modprobe_conf; -	modules::modprobe_conf->new; -    } else { -	require modules::modules_conf; -	modules::modules_conf->new; -    }     +    require modules::modprobe_conf; +    modules::modprobe_conf->new;  } @@ -103,10 +98,13 @@ sub remove_alias_regexp_byname {  sub remove_module {      my ($conf, $module) = @_; +    return if !$module;      $module = $conf->mapping($module); -    substInFile { -        undef $_ if /^$module/; -    } $_  foreach "$::prefix/etc/modules", "$::prefix/etc/modprobe.preload"; +    foreach my $file ("$::prefix/etc/modules", "$::prefix/etc/modprobe.preload") { +        substInFile { +            undef $_ if /^$module/; +        } $file; +    }      $conf->remove_alias($module);      log::explanations("removing module $module"); @@ -128,7 +126,7 @@ sub set_sound_slot {  sub read {      my (undef, $o_file) = @_; -    my $conf = modules::any_conf::vnew(); +    my $conf = vnew();      $conf->read($o_file);  } @@ -141,10 +139,7 @@ sub write {      #- Substitute new config (if config has changed)      substInFile {  	my ($type, $module, $val) = split(' ', chomp_($_), 3); -	if ($type eq 'post-install' && $module eq 'supermount') {	     -	    #- remove the post-install supermount stuff. -	    $_ = ''; -	} elsif (member($type, $conf->handled_fields)) { +	if (member($type, $conf->handled_fields)) {  	    my $new_val = $conf->{$module}{$type};  	    if (!$new_val) {  		$_ = ''; @@ -168,14 +163,22 @@ sub write {      modules::write_preload_conf($conf);  } +sub merge_into { +    my ($conf, $conf2) = @_; - +    if (ref($conf) eq ref($conf2)) { +	log::l("merging " . ref($conf)); +	add2hash($conf, $conf2); +    } else { +	log::l("not merging modules_conf " . ref($conf2) . " into " . ref($conf));	 +    } +}  ################################################################################  sub read_handled {      my ($conf, $o_file) = @_;      my $file = $o_file || $::prefix . $conf->file; -    my $raw_conf = modules::any_conf::read_raw($file); +    my $raw_conf = read_raw($file);      foreach my $module (keys %$raw_conf) {  	my $raw = $raw_conf->{$module}; @@ -197,9 +200,6 @@ sub read_raw {  	s/#.*$//;  	s/\s+$//; -	s/\b(snd-card-)/snd-/g; -	s/\b(snd-via686|snd-via8233)\b/snd-via82xx/g; -  	my ($type, $module, $val) = split(' ', $_, 3) or next;  	$c{$module}{$type} = $val; | 
