#!/bin/bash

ID=$$
MINECRAFTDIR=/usr/local/minecraft
WORLDNAME="world"
FILE="all_logout-"
ITS=0
PIDFILE=/var/run/minecraft/backup_check.pid

function shutdownCheck {
  rm $PIDFILE
  echo "Shutting Down...\n"
  exit 0
}

trap "shutdownCheck" SIGINT SIGTERM

if [ -e $PIDFILE ]; then
  PID=$(cat $PIDFILE)
  ps -p $PID >/dev/null 2>&1
  RUNNING=$?
  if [ $RUNNING -eq 0 ]; then
    echo "System already running. Shutting down..."
    exit 0
  else
    if [ ! -w $PIDFILE ]; then
      echo "Error: Unable to create PID file"
      exit 1
    fi
    echo $ID > $PIDFILE
  fi
else
  if [ ! -e $PIDFILE -a -w $PIDFILE ]; then
    echo "Error: Unable to create PID file"
    exit 1
  fi
  echo $ID > $PIDFILE
fi

if [ -e "$MINECRAFTDIR/all_logout-$WORLDNAME" ]; then
	ITS=$(stat -c %Y "$MINECRAFTDIR/$FILE$WORLDNAME")
fi

while [ 0 -eq 0 ]; do
	echo "Checking For Updates"
	if [ -e "$MINECRAFTDIR/$FILE$WORLDNAME" ]; then
		TS=$(cat "$MINECRAFTDIR/$FILE$WORLDNAME")
		if [ $ITS -lt $TS ]; then
			echo "Updating"
			ITS=$TS
			FILENAME=$WORLDNAME"_"$(date +"%m-%d-%Y_%H-%M-%S")
			#rm "$MINECRAFTDIR/$FILE$WORLDNAME" >/dev/null 2>&1
			cp -r -v "$MINECRAFTDIR/$WORLDNAME" "$MINECRAFTDIR/backups/$FILENAME"
			tar -czf "$MINECRAFTDIR/backups/$FILENAME.tgz" "$MINECRAFTDIR/backups/$FILENAME"
			if [ $? -eq 0 ]; then
				rm -rf "$MINECRAFTDIR/backups/$FILENAME"
				rm "$MINECRAFTDIR/$FILE$WORLDNAME"
			fi
		fi
	fi
	sleep 5
done
