#! /bin/sh -efu

#
# Moodle install tools
#
# @package   mt-install
# @copyright 2012 Aleksey Avdeev <solo@altlinux.ru>
# @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v2 or later
#

PROG="${0##*/}"

PATH="/usr/sbin:$PATH"

moodledir='/var/www/webapps/moodle'
configfilename='config.php'
configfile="$moodledir/$configfilename"
distrolib="$moodledir/install/distrolib.php"
dataroot="/var/lib/moodle/default"
perm=2770
group="_webserver"
msg=
dbname='moodle'
dbuser='moodleuser'
dbpass=''
setpass=
wwwroot=

. shell-error

TEMP=`getopt -n "$PROG" -o c:,f:,l:,m:,n:,u:,p:,w: -l datadir:,dataroot:,file:,distrolib:,msg:,dbname:,dbuser:,dbpass:,wwwroot: -- "$@"`
eval set -- "$TEMP"

while :; do
	case "$1" in
		--)
			shift
			break
			;;
		-c|--datadir|--dataroot)
			shift
			dataroot="$1"
			;;
		-f|--file)
			shift
			configfile="$1"
			;;
		-l|--distrolib)
			shift
			distrolib="$1"
			;;
		-m|--msg)
			shift
			msg="$1"
			;;
		-d|--dbname)
			shift
			dbname="$1"
			;;
		-u|--dbuser)
			shift
			dbuser="$1"
			;;
		-p|--dbpass)
			shift
			dbpass="$1"
			setpass='yes'
			;;
		-w|--wwwroot)
			shift
			wwwroot="$1"
			;;
		*) fatal "Unrecognized option: $1"
			;;
	esac
	shift
done

if [ -r "$distrolib" ] && [ -w "$distrolib" ]; then
	olddataroot=`mt-getdef --file="$distrolib" dataroot 2>/dev/null ||:`
	if [ "$olddataroot" != "$dataroot" ]; then
			mt-setdef --file="$distrolib" ${msg:+--msg="$msg"} dataroot "$dataroot"
	fi
fi

if [ -r "$configfile" ] && [ -w "$configfile" ]; then
	oldwwwroot=`mt-getCFG --file="$configfile" wwwroot 2>/dev/null ||:`
	olddbname=`mt-getCFG --file="$configfile" dbname 2>/dev/null ||:`
	olddbuser=`mt-getCFG --file="$configfile" dbuser 2>/dev/null ||:`
	if [ -n "$setpass" ]; then
		olddbpass=`mt-getCFG --file="$configfile" dbpass 2>/dev/null ||:`
	fi

	mt-newdataroot --file="$configfile" ${msg:+--msg="$msg"} "$dataroot"

	if [ "$olddbname" != "$dbname" ];then
		mt-setCFG --file="$configfile" ${msg:+--msg="$msg"} dbname "$dbname"
	fi

	if [ "$olddbuser" != "$dbuser" ];then
		mt-setCFG --file="$configfile" ${msg:+--msg="$msg"} dbuser "$dbuser"
	fi

	if [ -n "$setpass" ]; then
		if [ "$olddbpass" != "$dbpass" ];then
			mt-setCFG --file="$configfile" ${msg:+--msg="$msg"} dbpass "$dbpass"
		fi
	fi

	if [ -n "$wwwroot" ]; then
		if [ "$oldwwwroot" != "$wwwroot" ];then
			mt-setCFG --file="$configfile" ${msg:+--msg="$msg"} wwwroot "$wwwroot"
		fi
	fi
else
	fatal "No update $configfile"
fi

mt-DB-setdb --dbname="$dbname" --dbuser="$dbuser" ${setpass:+--dbpass="$dbpass"} -- $@
