From: Thomas Hochstein Date: Mon, 2 Sep 2013 08:40:17 +0000 (+0200) Subject: Add some basic validation to config parser. X-Git-Tag: 0.01~1^2~1^2 X-Git-Url: https://code.th-h.de/?p=usenet%2Fnewsstats.git;a=commitdiff_plain;h=db7696e550695219f00b24b19020f0c163e8c171;ds=sidebyside Add some basic validation to config parser. We check for empty mandatory options for starters. Fixes #13 ... so we can release RSN :) Signed-off-by: Thomas Hochstein --- diff --git a/NewsStats.pm b/NewsStats.pm index bfcb37b..91a1396 100644 --- a/NewsStats.pm +++ b/NewsStats.pm @@ -99,7 +99,19 @@ sub ReadConfig { ### IN : $ConfFile: config filename ### OUT: reference to a hash containing the configuration my ($ConfFile) = @_; - return Config::Auto::parse($ConfFile, format => 'equal'); + # mandatory configuration options + my @Mandatory = ('DBDriver','DBHost','DBUser','DBPw','DBDatabase', + 'DBTableRaw','DBTableGrps'); + # read config via Config::Auto + my $ConfR = Config::Auto::parse($ConfFile, format => 'equal'); + my %Conf = %{$ConfR}; + # check for mandatory options + foreach (@Mandatory) { + &Bleat(2,sprintf("Mandatory configuration option %s is not set!",$_)) + if (!defined($Conf{$_})); + } + # $Conf{'TLH'} is checked in gatherstats.pl + return $ConfR; }; ################################################################################