#!/bin/sh
#Dump recdatalog data for month, day, and year.
#Count Alert legacy messages.
#Count Alert2 messages.
#Compute the ratio between Alert2 and Alert legacy reports.
#Email report.
#Use sendrpt to write the count data to NovaStar5

pgname="countlines"
tmpfile="/tmp/$pgname"
logfile="/usr/ns/log/$pgname.log"
hostname=$(hostname)
echo "$(nstime) $pgname started..." >>$logfile

stripit ()
{
sed \
-e "s/^.*Line: /Line: /"
}

# Do the previous day by default
x=$(dispdate -t)
x=$((x-86400))
month=$(dispdate -t $x +%m)
day=$(dispdate -t $x +%d)
year=$(dispdate -t $x +%Y)

# Get month, day and year on command if provided
if [ $# -ge 3 ]; then 
 month=$1
 day=$2
 year=$3
fi

# Get log file rollover search limit
limit=40
if [ $# -ge 4 ]; then limit=$4; fi

# Set pattern to match in log files
matchpattern="$month/$day/$year"

# Set working file name
filename="$tmpfile"
rm -f $filename
echo "filename=$filename"

nomatchfile="/usr/ns/cus/makerecdatalog-nomatch.txt"

# Extract lines matching pattern from log files included rotated zipped files.
(
number=$limit
while test $number -gt 1; do
gunzip </usr/ns/log/nsrecdata.log.$number.gz
number=$((number-1))
done
cat /usr/ns/log/nsrecdata.log.1
cat /usr/ns/log/nsrecdata.log
) 2>/dev/null | grep -e "$matchpattern" | grep -e "ID: " | grep -v -f $nomatchfile | stripit >>$filename

# UDFCD Master Node
# Count number of reports on Line: 1 for Hays County Government Center connect port
govconnect=$(grep "Line: 1 " $filename | wc -l)
# Count number of reports on Line: 2 for Wimberly Fire Station connect port
wimbconnect=$(grep "Line: 2 " $filename | wc -l)
# Count number of reports on Line: 3 for Buda Volunteer Fire Station connect port
budaconnect=$(grep "Line: 3 " $filename | wc -l)
# Count number of reports on Line: 4 for North Hays County Volunteer Fire Station connect port
nhcconnect=$(grep "Line: 4 " $filename | wc -l)
# Count number of reports on Line: 5 for Hays County Government Center listen port
govlisten=$(grep "Line: 5 " $filename | wc -l)
# Count number of reports on Line: 6 for Wimberly Fire Station listen port
wimblisten=$(grep "Line: 6 " $filename | wc -l)
# Count number of reports on Line: 7 for Buda Volunteer Fire Station listen port
budalisten=$(grep "Line: 7 " $filename | wc -l)
# Count number of reports on Line: 8 for North Hays County Volunteer fire station listen port
nhclisten=$(grep "Line: 8 " $filename | wc -l)
# Count number of inserts in recdata logs
countinsert=$(grep "insert" $filename | wc -l)
# Count number of updates in recdata logs
countupdate=$(grep "update" $filename | wc -l)


#Compute ratio of Alert2 concentrator to Alert legacy
#ratio=0
#if [ $Alegacy -ne 0 ]; then
#ratio=$((A2concentrator * 100 / Alegacy))
#fi

# Write count values to the NovaStar5 database using sendrpt
# Write values from Master Node
sendrpt 9001 $govconnect
sendrpt 9002 $wimbconnect
sendrpt 9003 $budaconnect
sendrpt 9004 $nhcconnect
sendrpt 9005 $govlisten
sendrpt 9006 $wimblisten
sendrpt 9007 $budalisten
sendrpt 9008 $nhclisten
sendrpt 9009 $countinsert
sendrpt 9010 $countupdate

# Prepare a report
(
echo "matchpattern=$matchpattern" 
echo "nomatchfile=$nomatchfile" 
echo "Total messages on Hays Government Center connect port: $govconnect"
echo "Total messages on Wimberly Fire Station connect port: $wimbconnect"
echo "Total messages on Buda Fire Station connect port: $budaconnect"
echo "Total messages on North Hays Fire Station connect port: $nhcconnect"
echo "Total messages on Hays Government Center listen port: $govlisten"
echo "Total messages on Wimberly Fire Station listen port: $wimblisten"
echo "Total messages on Buda Fire Station listen port: $budalisten"
echo "Total messages on North Hays Fire Station listen port: $nhclisten"
echo "Total inserts into database from Master Node: $countinsert" 
echo "Total updates into database from Master Node: $countupdate"  
) >$tmpfile

# Display report
cat $tmpfile | tee -a $logfile

# Email report
cat $tmpfile | mail -s "Hays County Diagnostics from  Master Node" \
-a "FROM:$hostname@co.hays.tx.us" \
mlritsch@water-and-earth.com rniedenzu@water-and-earth.com jason.puccetti@trilynx.systems
echo "Email to: Markus, Rob and Jason" | tee -a $logfile

# Clean up
rm -f  $tmpfile
echo "$(nstime) $pgname finished" >>$logfile
