Add: MID-Format may now contain %t for a Unix timestamp.
[usenet/yapfaq.git] / yapfaq.pl
index dd5e57b..d4e381e 100644 (file)
--- a/yapfaq.pl
+++ b/yapfaq.pl
@@ -1,6 +1,6 @@
 #! /usr/bin/perl -W
 #
-# yapfaq Version 0.6 by Thomas Hochstein
+# yapfaq Version 0.7 by Thomas Hochstein
 # (Original author: Marc Brockschmidt)
 #
 # This script posts any project described in its config-file. Most people
 # It can be redistributed and/or modified under the same terms under 
 # which Perl itself is published.
 
-my $Version = "0.6.2";
+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 ##################################
-my %Config = (NNTPServer => "localhost",
+################################### Defaults ###################################
+# Please do not change anything in here!
+# Use a runtime configuration file (.yapfaqrc by default) to override defaults.
+my %Config = (NNTPServer => "",
               NNTPUser   => "",
               NNTPPass   => "",
               Sender     => "",
@@ -50,7 +55,7 @@ my @PGPorderheaders = ('from', 'newsgroups', 'subject', 'control',
        '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;
@@ -166,7 +171,7 @@ sub readconfig{
   my ($File, $Config, $Faq) = @_;
   my ($LastEntry, $Error, $i) = ('','',0);
 
-  print "Reading configuration.\n" if($Options{'v'});
+  print "Reading configuration from $$File.\n" if($Options{'v'});
 
   open FH, "<$$File" or die "$0: E: Can't open $$File: $!";
   while (<FH>) {
@@ -264,6 +269,7 @@ sub postfaq {
   #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
@@ -271,6 +277,7 @@ sub postfaq {
   $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");
@@ -572,7 +579,7 @@ yapfaq - Post Usenet FAQs I<(yet another postfaq)>
 
 =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
 
@@ -684,8 +691,9 @@ A pattern from which the message ID is generated as it will appear in
 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
@@ -944,9 +952,26 @@ if it is due:
 
     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
 
This page took 0.012436 seconds and 4 git commands to generate.