diff options
author | Angelo Naselli <anaselli@linux.it> | 2015-01-04 21:08:12 +0100 |
---|---|---|
committer | Angelo Naselli <anaselli@linux.it> | 2015-01-04 21:08:12 +0100 |
commit | 8e76928c3751a4cd452debaeb9faeacfc37ca460 (patch) | |
tree | f5514ea11dbbccd7f867ac2f51cb12c3c49389a7 /lib | |
parent | fdb86f8297c6733ef463d9d1c3d987cd23e734e7 (diff) | |
download | manatools-8e76928c3751a4cd452debaeb9faeacfc37ca460.tar manatools-8e76928c3751a4cd452debaeb9faeacfc37ca460.tar.gz manatools-8e76928c3751a4cd452debaeb9faeacfc37ca460.tar.bz2 manatools-8e76928c3751a4cd452debaeb9faeacfc37ca460.tar.xz manatools-8e76928c3751a4cd452debaeb9faeacfc37ca460.zip |
Set to default value all the keys that are undef into configuration
file, this should avoid bug #14927 e.g. unpredictable behavior with some
wrongly written keys and values, probably on crash or bad closure.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/AdminPanel/rpmdragora.pm | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/AdminPanel/rpmdragora.pm b/lib/AdminPanel/rpmdragora.pm index 16c91257..09c62d8a 100644 --- a/lib/AdminPanel/rpmdragora.pm +++ b/lib/AdminPanel/rpmdragora.pm @@ -233,9 +233,8 @@ our %config = ( sub readconf() { ${$config{$_}{var}} = $config{$_}{default} foreach keys %config; foreach my $l (MDK::Common::File::cat_($configfile)) { - foreach (keys %config) { - ${$config{$_}{var}} = [ split ' ', $1 ] if $l =~ /^\Q$_\E(.*)/; - } + my ($key, @values) = split ' ', $l; + ${$config{$key}{var}} = \@values if scalar @values; } # special cases: $::rpmdragora_options{'no-confirmation'} = $no_confirmation->[0] if !defined $::rpmdragora_options{'no-confirmation'}; @@ -248,7 +247,9 @@ sub writeconf() { # special case: $no_confirmation->[0] = $::rpmdragora_options{'no-confirmation'}; - MDK::Common::File::output($configfile, map { "$_ " . (ref ${$config{$_}{var}} ? join(' ', @${$config{$_}{var}}) : '') . "\n" } sort keys %config); + my @config_content = map { "$_ " . (ref ${$config{$_}{var}} ? join(' ', @${$config{$_}{var}}) : '') . "\n" } sort keys %config; + MDK::Common::File::output($configfile, @config_content); + print "writeconf done!\n"; } sub getbanner() { |