#!/bin/bash

# conf
FILE="$1"
INTERVAL="300"
SMS=""
EMAIL=""
SKIP_FIRST_RUN=1
# /conf

HOSTNAME=`hostname`
TMP_FILE="/tmp/logforwarder.tmp.$$"

shift

while [ "$1" != "" ]; do
	[ "$1" == "--sleep" ] && { shift; INTERVAL="$1"; }
	[ "$1" == "--sms" ] && { shift; SMS="$SMS $1"; }
	[ "$1" == "--email" ] && { shift; EMAIL="$EMAIL $1"; }
	shift
done


[ "$SKIP_FIRST_RUN" == "1" ] && last_line_count=`wc -l $FILE | cut -d \  -f 1`

while [ /bin/true ]; do
	line_count=`wc -l $FILE | cut -d \  -f 1`

	if [ "$line_count" -ge "$last_line_count" ]; then
		line_count_diff=$((line_count - last_line_count))
	else
		line_count_diff=$line_count
	fi
	
	if [ "$line_count_diff" != "0" ]; then
	
		tail -n $line_count_diff $FILE > $TMP_FILE

		for i in $EMAIL; do
			cat $TMP_FILE | mail -s "Logforwarder at $HOSTNAME" -a "From: logforwarder@$HOSTNAME" $i
		done

		for i in $SMS; do
			/scripts/sms.sh $i `cat $TMP_FILE | tr "\"\\\;" "   "`
		done

		unlink $TMP_FILE
		sleep $INTERVAL
	fi

	sleep 10
	last_line_count=$line_count
done
