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 => "",
# read commandline options
my %Options;
-getopts('Vhvpdt:f:s:', \%Options);
+getopts('Vhvpdt:f:c:s:', \%Options);
# -V: print version / copyright information
if ($Options{'V'}) {
print "$0 v $Version\nCopyright (c) 2003 Marc Brockschmidt <marc\@marcbrockschmidt.de>\nCopyright (c) 2010 Thomas Hochstein <thh\@inter.net>\n";
# -f: set $Faq
my ($Faq) = $Options{'f'} if ($Options{'f'});
+# read runtime configuration (configuration variables)
+$RCFile = $Options{'c'} if ($Options{'c'});
+if (-f $RCFile) {
+ readrc (\$RCFile,\%Config);
+} else {
+ warn "$0: W: .rc file $RCFile does not exist!\n";
+}
+
# read configuration (configured FAQs)
my @Config;
readconfig (\$Config{'ConfigFile'}, \@Config, \$Faq);
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 (<FH>) {
+ 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