#!/usr/bin/perl -w
# This script is intended to make a script that may rerun strings logged as
# failed by fidogate ftntoss. I had a need in this script after I made  a bug
# in configs..
# Tested only w/ my configs. May work wrong w/ yours!
# (c) Olli (olli@digger.org.NOSPAMru,remove NOSPAM before mailing)
# greetz: i_L, Corvin, Vika
# Thanx : Peter V. Chernikoff (peter@digger.org.ru,remove NOSPAM before mailing)
# for help in moving my node to Linux. =)
# Look at log file twice nefore apply.=)
$logdir="/var/log/ftn/";
$logfile="$logdir/log-in";
$outdir="/tmp/fidogate";
$script="$outdir/mail_readd.sh";
#$mailer="/bin/mail";
$ftn_user="ftn";
############### proggie goes:
system `mkdir $outdir 2>/dev/null`;
open( LOGF,   "<$logfile" ) || die "Can't read $logfile: $!.\n";
open( SCRIPT, ">$script"  ) || die "Can't write to $script: $!.\n";
print "resulting script will be in $script\n";
print "\n\t\t\t.USE WITH CARE.\n\n";
print SCRIPT "\#!/bin/sh\n";
while(<LOGF>) 
{next unless (/failed/);
 next unless (/ERROR: \//);
 $_=$';
#print "$_\n";
 / failed/;
 $_=$`; #` stupid mcedit perl syntax highlighting..
 print SCRIPT "su $ftn_user -c \"/$_;echo exit code: \$?\"\n";
} # EOF <LOGF>
system `chmod +x $script`;
close(LOGF);
close(SCRIPT);
exit;
