#!/bin/bash

. /etc/init.d/functions
. /usr/local/Reductor/etc/const
. $MAINDIR/usr/share/angel_lib
. $CONFIG

[ "$1" = 'plaintext' ] && SETCOLOR_SUCCESS= SETCOLOR_FAILURE= SETCOLOR_NORMAL= MOVE_TO_COL=

LOG=/var/log/reductor/reductor.log
TESTS=$MAINDIR/tests/
export TMPDIR=/tmp/angel/
rm -rf $TMPDIR/*
mkdir -p $TMPDIR

show_error() {
	printf " ERROR($retval)"
	echo_failure
	echo
	markdown_code < "$OUTPUT"
}

global_retval=0
log "Angel started" >> $LOG
echo
> /opt/reductor_web/app/var/errors
for TEST in $(find "$TESTS" -mindepth 1 -maxdepth 1 -type f -executable); do
	TESTFILE="${TEST##*/}"
	OUTPUT=$TMPDIR/$TESTFILE.output
	retval=0
	$TEST &>"$OUTPUT" || retval=$?
	markdown_list "tests/$TESTFILE: "
	if [ "$retval" = '0' ]; then
		echo_success
		echo
		continue
	fi
	global_retval=$((retval+global_retval))
	echo "$TEST ERROR($retval): $(<$OUTPUT)" > $TMPDIR/alarm_text
	show_error 					# stdout
	show_error >> $LOG				# for developers
	[ "$1" = 'plaintext' ] && show_error >&2	# for watchdog
	send_alarm "$TMPDIR/alarm_text"			# for admins
	[ "$ret" = '254' ] && exit 254
done
echo

exit $global_retval
