my $Version = "0.8-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',
'UsePGP','pgp','PGPVersion','PGPSigner','PGPPass',
'PathtoPGPPass','pgpbegin','pgpend','pgptmpf','pgpheader');
-################################### Defaults ##################################
+################################### Defaults ###################################
+# Please do not change anything in here!
+# Use a runtime configuration file (.yapfaqrc by default) to override defaults.
my %Config = (NNTPServer => "",
NNTPUser => "",
NNTPPass => "",
'content-transfer-encoding', 'summary', 'keywords', 'cancel-lock',
'cancel-key', 'also-control', 'x-pgp', 'user-agent');
-############################# End of Configuration #############################
+################################# Main program #################################
use strict;
use Net::NNTP;
warn "$0: W: The Expires for your project \"$$Config[$i]{'name'}\" is invalid - set to 3 month.\n";
$$Config[$i]{'expires'} = '3m'; # set default (3 month) if expires is unset or invalid
}
- unless(!$$Config[$i]{'mid-format'} || $$Config[$i]{'mid-format'} =~ /^<\S+\@\S{2,}\.\S{2,}>$/) {
+ unless(!$$Config[$i]{'mid-format'} || $$Config[$i]{'mid-format'} =~ /^<\S+\@(\S+\.)?\S{2,}\.\S{2,}>/) {
warn "$0: W: The Message-ID format for your project \"$$Config[$i]{'name'}\" seems to be invalid - set to default.\n";
$$Config[$i]{'mid-format'} = '<%n-%d.%m.%y@'.hostfqdn.'>'; # set default if mid-format is invalid
}
#Prepare MID:
$$TDM = ($$TDM < 10 && $$TDM !~ /^0/) ? "0" . $$TDM : $$TDM;
$$TDD = ($$TDD < 10 && $$TDD !~ /^0/) ? "0" . $$TDD : $$TDD;
+ my $Timestamp = time;
$MID = $$MIDF;
$MID = '<%n-%d.%m.%y@'.hostfqdn.'>' if !defined($MID); # set to default if unset
$MID =~ s/\%d/$$TDD/g;
$MID =~ s/\%m/$$TDM/g;
$MID =~ s/\%y/$$TDY/g;
+ $MID =~ s/\%t/$Timestamp/g;
#Now get the body:
open (FH, "<$$File");
=head1 SYNOPSIS
-B<yapfaq> [B<-hvpd>] [B<-t> I<newsgroups> | CONSOLE] [B<-f> I<project name>] [B<-s> I<program>] [B<-c> I<.rc file>]
+B<yapfaq> [B<-Vhvpd>] [B<-t> I<newsgroups> | CONSOLE] [B<-f> I<project name>] [B<-s> I<program>] [B<-c> I<.rc file>]
=head1 REQUIREMENTS
the Message-ID header of the message.
You may use the special strings C<%n> for the I<Name> of your project,
-C<%d> for the date the message is posted, C<%m> for the month and
-C<%y> for the year, respectively.
+C<%d> for the date the message is posted, C<%m> for the month, C<%y>
+for the year and C<%t> for a time stamp (number of seconds since the
+epoch), respectively.
This setting is optional; the default is '<%n-%d.%m.%y@I<YOURHOST>>'
where I<YOURHOST> is the fully qualified domain name (FQDN) of the
yapfaq -t de.test -f myfaq
+Post all FAQs (that are due for posting) using inews from INN:
+
+ yapfaq -s inews
+
+Do a dry run using a runtime configuration from .alternaterc, showing
+which FAQs would be posted:
+
+ yapfaq -dvc .alternaterc
+
=head1 ENVIRONMENT
-There are no special environment variables used by B<yapfaq>.
+=over 4
+
+=item NNTPSERVER
+
+The default NNTP server to post to, used by the Net::NNTP module. You
+can also specify the server using the runtime configuration file (by
+default F<.yapfaqrc>).
+
+=back
=head1 FILES