X-Git-Url: https://code.th-h.de/?p=usenet%2Fyapfaq.git;a=blobdiff_plain;f=yapfaq.pl;h=23f7e5ae7f3e8e2b2596036d9f86507844edc3be;hp=0d331b04b6a6ba2fcc388575b3b2b45d4235408c;hb=d60c2d5fdfb9bde091cd788893dd5c7e442a58e0;hpb=2507947f17862c5463b0def8ce942e6d5b62631c diff --git a/yapfaq.pl b/yapfaq.pl index 0d331b0..23f7e5a 100644 --- a/yapfaq.pl +++ b/yapfaq.pl @@ -14,6 +14,12 @@ my $Version = "0.6.2"; +my $RCFile = '.yapfaqrc'; +my @ValidConfVars = ('NNTPServer','NNTPUser','NNTPPass','Sender','ConfigFile', + 'UsePGP','pgp','PGPVersion','PGPSigner','PGPPass', + 'PathtoPGPPass','pgpbegin','pgpend','pgptmpf','pgpheader'); + +################################### Defaults ################################## my %Config = (NNTPServer => "localhost", NNTPUser => "", NNTPPass => "", @@ -71,6 +77,9 @@ if ($Options{'h'}) { # -f: set $Faq my ($Faq) = $Options{'f'} if ($Options{'f'}); +# read runtime configuration (configuration variables) +readrc (\$RCFile,\%Config) if -f $RCFile; + # read configuration (configured FAQs) my @Config; readconfig (\$Config{'ConfigFile'}, \@Config, \$Faq); @@ -124,6 +133,26 @@ foreach (@Config) { exit; +#################################### readrc #################################### +# Takes a filename and the reference to an array which contains the valid options + +sub readrc{ + my ($File, $Config) = @_; + + print "Reading $$File.\n" if($Options{'v'}); + + open FH, "<$$File" or die "$0: Can't open $$File: $!"; + while () { + if (/^\s*(\S+)\s*=\s*'?(.*?)'?\s*(#.*$|$)/) { + if (grep(/$1/,@ValidConfVars)) { + $$Config{$1} = $2 if $2 ne ''; + } else { + warn "$0: W: $1 is not a valid configuration variable (reading from $$File)\n"; + } + } + } +} + ################################## readconfig ################################## # Takes a filename, a reference to an array, which will hold hashes with # the data from $File, and - optionally - the name of the (single) FAQ to post