#! /bin/bash

echo "Check on unclean shutdown..."
MYSQL_BASE=/var/lib/mysql
MYSQL_PID=$MYSQL_BASE/mysqld.pid
VARGUS_DB=$MYSQL_BASE/db/vargus
VARGUS_PID_DIR=/var/run/vargus

UNCLEAN=0

PID_FILES=`ls $VARGUS_PID_DIR/* 2>/dev/null`
if [ -n "$PID_FILES" ]; then
	UNCLEAN=1
	logger -s -t vargus-recovery "Vargus stale PIDs found, erased..."
	rm -f $VARGUS_PID_DIR/*
fi

for WRITE_CONFIG in /etc/vargus/[0-9][0-9]-writer; do
	VIDEO_DIR=`grep "^video-storage=" $WRITE_CONFIG |cut -f2 -d=`
done

if [ -n "$VIDEO_DIR" ]; then 
	if [ -e $VIDEO_DIR/check_integrity_request.flag ]; then 
		UNCLEAN=1
		logger -s -t vargus-recovery "Vargus check_integrity_request.flag detected, erased..." 
		rm -f $VIDEO_DIR/check_integrity_request.flag
	fi

	OUTFILES=`ls $VIDEO_DIR/postprocess.*.outfile.* 2>/dev/null`
	if [ -n "$OUTFILES" ]; then
		UNCLEAN=1
		logger -s -t vargus-recovery "Vargus postprocessor files detected, erased..."
		rm -f $VIDEO_DIR/postprocess.*.outfile.*
	fi
fi

if [ -e $MYSQL_PID -a -d $VARGUS_DB -a -z "`pidof mysqld`" ]; then
	UNCLEAN=$(($UNCLEAN + 2))
	logger -s -t vargus-recovery "Unclean MySQL shutdown detected; checking bases..." 
	{
		cd $VARGUS_DB
		for DB_FILE in *.MYI; do
			myisamchk -mos $DB_FILE 2>&1 >/dev/null
		done
	}
fi


if [ $UNCLEAN -gt 0 ]; then
	logger -s -t vargus-recovery "Recovery completed"
fi
