X-Git-Url: https://code.th-h.de/?p=usenet%2Fyapfaq.git;a=blobdiff_plain;f=yapfaq.pl;h=2b5fe2f475abfca2311b775c01fff23f5cd67359;hp=2817dcad64fa49e50cb92b823c525897c79815f1;hb=dc66bfa3f5849c9175b0960f25d66deb5bea1856;hpb=0e741504feb74cf03da610cf5fe231d800520e7a;ds=inline diff --git a/yapfaq.pl b/yapfaq.pl index 2817dca..2b5fe2f 100644 --- a/yapfaq.pl +++ b/yapfaq.pl @@ -1,6 +1,6 @@ #! /usr/bin/perl -W # -# yapfaq Version 0.7 by Thomas Hochstein +# yapfaq Version 0.8.1 by Thomas Hochstein # (Original author: Marc Brockschmidt) # # This script posts any project described in its config-file. Most people @@ -12,13 +12,13 @@ # It can be redistributed and/or modified under the same terms under # which Perl itself is published. -my $Version = "0.8-prelease"; +our $VERSION = "0.9-prelease"; # Please do not change this setting! # You may override the default .rc file (.yapfaqrc) by using "-c .rc file" my $RCFile = '.yapfaqrc'; # Valid configuration variables for use in a .rc file -my @ValidConfVars = ('NNTPServer','NNTPUser','NNTPPass','Sender','ConfigFile'); +my @ValidConfVars = ('NNTPServer','NNTPUser','NNTPPass','Sender','ConfigFile','Program'); ################################### Defaults ################################### # Please do not change anything in here! @@ -27,7 +27,8 @@ my %Config = (NNTPServer => "", NNTPUser => "", NNTPPass => "", Sender => "", - ConfigFile => "yapfaq.cfg"); + ConfigFile => "yapfaq.cfg", + Program => ""); ################################# Main program ################################# @@ -37,6 +38,7 @@ use Net::Domain qw(hostfqdn); use Date::Calc qw(Add_Delta_YM Add_Delta_Days Delta_Days Today); use Fcntl ':flock'; # import LOCK_* constants use Getopt::Std; +$Getopt::Std::STANDARD_HELP_VERSION = 1; my ($TDY, $TDM, $TDD) = Today(); #TD: Today's date # read commandline options @@ -44,7 +46,7 @@ my %Options; getopts('Vhvpdt:f:c:s:', \%Options); # -V: print version / copyright information if ($Options{'V'}) { - print "$0 v $Version\nCopyright (c) 2003 Marc Brockschmidt \nCopyright (c) 2010 Thomas Hochstein \n"; + print "$0 v $VERSION\nCopyright (c) 2003 Marc Brockschmidt \nCopyright (c) 2010 Thomas Hochstein \n"; print "This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.\n"; exit(0); } @@ -64,6 +66,8 @@ if (-f $RCFile) { warn "$0: W: .rc file $RCFile does not exist!\n"; } +$Options{'s'} = $Config{'Program'} if (defined($Config{'Program'}) && $Config{'Program'} && !defined($Options{'s'})); + # read configuration (configured FAQs) my @Config; readconfig (\$Config{'ConfigFile'}, \@Config, \$Faq); @@ -309,7 +313,7 @@ sub postfaq { push @Header, "Reply-To: $$ReplyTo\n" if $$ReplyTo; push @Header, "Content-Type: text/plain; charset=ISO-8859-15\n"; push @Header, "Content-Transfer-Encoding: 8bit\n"; - push @Header, "User-Agent: yapfaq/$Version\n"; + push @Header, "User-Agent: yapfaq/$VERSION\n"; if ($$ExtraHeaders) { push @Header, "$_\n" for (split /\n/, $$ExtraHeaders); } @@ -639,6 +643,13 @@ This setting is optional. The configuration file defining the FAQ(s) to post. Must be set (or omitted; the default is "yapfaq.cfg"). +=item B = I (optional) + +A program the article is piped to instead of posting it to Usenet. +See option "-f" below (which takes preference). + +This setting is optional. + =back =head3 Example runtime configuration file @@ -648,6 +659,7 @@ omitted; the default is "yapfaq.cfg"). NNTPPass = '' Sender = '' ConfigFile = 'yapfaq.cfg' + Program = '' =head3 Using more than one runtime configuration @@ -713,6 +725,9 @@ For example, you may want to use the I utility from the INN package or the much more powerful replacement I from I which is able to sign postings. +If I is also defined in the runtime configuration file (by default +F<.yapfaqrc>), B<-s> takes preference. + =item B<-c> I<.rc file> Load another runtime configuration file (.rc file) than F<.yaofaq.rc>. @@ -792,13 +807,19 @@ the last post of that FAQ. =head1 BUGS -Many, I'm sure. +Please report any bugs or feature request to the author or use the +bug tracker at L! =head1 SEE ALSO L will have the current version of this program. +This program is maintained using the Git version control system. You +may clone L to check out the +current development tree or browse it on the web via +L. + =head1 AUTHOR Thomas Hochstein