#!/bin/sh

LOG_FN_DIR=$1
LOG_FILE=$2
LOG_DELAY=$3
LOG_MAX_SIZE=$4

SCRIPTS=

cd $LOG_FN_DIR

for script in *; do
  if [ -x $script ]; then
    SCRIPTS="$SCRIPTS
$script"

    . $script
  fi
done

addtitleline() {
  LINE="Seconds since 1/1/1970,Time,Date"
  for script in $SCRIPTS; do
    LINE="$LINE,$(${script}_log_title)"
  done

  echo $LINE >&3

  return 0
}

if [ -e $LOG_FILE ]; then
  mv $LOG_FILE $LOG_FILE.1
fi

exec 3>$LOG_FILE

addtitleline
LINES=0

while true; do
  LINE=$(date +"%s,%H:%M:%S,%d/%m/%Y")

  for script in $SCRIPTS; do
    LINE="$LINE,$(${script}_log)"
  done

  echo $LINE >&3
  LINES=$(($LINES+1))
  
  sleep $LOG_DELAY

  if [ $LINES = $LOG_MAX_SIZE ]; then
    exec 3>&-
    mv $LOG_FILE $LOG_FILE.1
    exec 3>$LOG_FILE
    addtitleline
    LINES=0
  fi
done
