#! /bin/bash
#by sisalp
Option="$1"
case "$Option" in
-*)
	shift
	;;
esac
Services="$1"
if [ -z "$Services" ] ; then
	Services="production"
fi
cd /home/sisalpuser/xoe.services
Services=`ls -d $Services* | xargs`
case "$Option" in
-h|--help)
	echo "version 0.1, 8 apr 2021
syntax:
$0 --help		print this help
$0 --log [service]	print log of service, default is production
$0 --live [service]	follow log of service, default is production
$0 --clean [service]	remove all files added by $0, including log
$0 --update		get a new version of the script (as root)
$0 [service]		watch service log size, default is production
you should be sisalpuser for better results
add
* * * * * $0 > /dev/null 2>&1 to sisalpuser crontab
"
	exit 0
	;;
--log|-l)
	for Service in $Services ; do
		less /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
	done
	exit 0
	;;
--live)
	shift
	for Service in $Services ; do
		tail -f /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
	done
	exit 0
	;;
--clean|-c)
	for Service in $Services ; do
		rm -f /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
		rm -f /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.rights
		rm -f /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.size
		rm -f /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.history.size
	done
	exit 0
	;;
-u|--update)
	cd /usr/local/bin
	rm $0
	wget http://download.sisalp.net/scripts/watch_log
	chmod 755 watch_log
	$0 --help
	exit 0
	;;
esac
for Service in $Services ; do
	log_rights=`ls -lh /home/sisalpuser/xoe.services/$Service/log/server_$Service.log | cut -d" " -f-3`
	old_log_rights=`cat /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.rights`

	case "$log_rights" in
	$old_log_rights)
		;;
	*)
		echo "$log_rights" > /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.rights
		echo "" >> /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
		echo "`date`	$log_rights" >> /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
		;;
	esac
	log_size=`wc -l /home/sisalpuser/xoe.services/$Service/log/server_$Service.log | cut -d" " -f1`
	history_size=`wc -l /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.history | cut -d" " -f1`
	old_log_size=`cat /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.size`
	old_history_size=`cat /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.history.size`
	if [ ${log_size} -lt ${old_log_size} ] || [ ${history_size} -gt ${old_history_size} ] ; then
		echo "" >> /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
		echo "$Service `date`	old history size $old_history_size" >> /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
		echo "$Service `date`	old_log size $old_log_size" >> /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
		echo "$Service `date`	new history size $history_size" >> /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
		echo "$Service `date`	new log size $log_size" >> /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
	else
		echo -n ".$log_size/$history_size." >> /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.log
	fi
	echo "$log_size" > /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.size
	echo "$history_size" > /home/sisalpuser/xoe.services/$Service/log/server_$Service.log.history.size
done
exit 0
