aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AdminPanel/rpmdragora.pm
diff options
context:
space:
mode:
authorAngelo Naselli <anaselli@linux.it>2015-01-04 21:08:12 +0100
committerAngelo Naselli <anaselli@linux.it>2015-01-04 21:08:12 +0100
commit8e76928c3751a4cd452debaeb9faeacfc37ca460 (patch)
treef5514ea11dbbccd7f867ac2f51cb12c3c49389a7 /lib/AdminPanel/rpmdragora.pm
parentfdb86f8297c6733ef463d9d1c3d987cd23e734e7 (diff)
downloadmanatools-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/AdminPanel/rpmdragora.pm')
-rw-r--r--lib/AdminPanel/rpmdragora.pm9
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() {