Add option '-s': pipe article to script.
[usenet/yapfaq.git] / yapfaq.pl
index 7313305..c36be30 100644 (file)
--- a/yapfaq.pl
+++ b/yapfaq.pl
@@ -60,7 +60,7 @@ my ($TDY, $TDM, $TDD) = Today(); #TD: Today's date
 
 # read commandline options
 my %Options;
 
 # read commandline options
 my %Options;
-getopts('Vhvpdt:f:', \%Options);
+getopts('Vhvpdt:f: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";
 # -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";
@@ -315,12 +315,20 @@ sub post {
 
   # Test mode?
   if(defined($Options{'t'}) and $Options{'t'} =~ /console/i) {
 
   # Test mode?
   if(defined($Options{'t'}) and $Options{'t'} =~ /console/i) {
-    print "\n-----BEGIN--------------------------------------------------\n";
+    print "-----BEGIN--------------------------------------------------\n";
        print @$ArticleR;
        print @$ArticleR;
-    print "\n------END---------------------------------------------------\n";
+    print "------END---------------------------------------------------\n";
        return;
   }
 
        return;
   }
 
+  # pipe to script?
+  if(defined($Options{'s'})) {
+    open (POST, "| $Options{'s'}") or die "$0: E: Cannot fork $Options{'s'}: $!\n";
+    print POST @$ArticleR;
+    close POST;
+    return;
+  }
+
   my $NewsConnection = Net::NNTP->new($NNTPServer, Reader => 1)
     or die "$0: E: Can't connect to news server '$NNTPServer'!\n";
 
   my $NewsConnection = Net::NNTP->new($NNTPServer, Reader => 1)
     or die "$0: E: Can't connect to news server '$NNTPServer'!\n";
 
@@ -517,7 +525,7 @@ yapfaq - Post Usenet FAQs I<(yet another postfaq)>
 
 =head1 SYNOPSIS
 
 
 =head1 SYNOPSIS
 
-B<yapfaq> [B<-hvpd>] [B<-t> I<newsgroups> | CONSOLE] [B<-f> I<project name>]
+B<yapfaq> [B<-hvpd>] [B<-t> I<newsgroups> | CONSOLE] [B<-f> I<project name>] [B<-s> I<program>]
 
 =head1 REQUIREMENTS
 
 
 =head1 REQUIREMENTS
 
@@ -760,6 +768,12 @@ will be posted unconditionally. That may not be what you want to
 achieve, so you can limit the operation of B<yapfaq> to the named FAQ
 only.
 
 achieve, so you can limit the operation of B<yapfaq> to the named FAQ
 only.
 
+=item B<-s> I<program> (pipe to script)
+
+Instead of posting the article(s) to Usenet pipe them to the external
+I<program> on STDIN (which may post the article(s) then). A return
+value of 0 will be considered success.
+
 =back
 
 =head1 EXAMPLES
 =back
 
 =head1 EXAMPLES
This page took 0.011418 seconds and 4 git commands to generate.