#!/bin/sh

MOODLE_PASS=`pwgen 16 1`
WIKI_PASS=`pwgen 16 1`
RUJEL_PASS=`pwgen 16 1`
OWNCLOUD_PASS=`pwgen 16 1`

# MediaWiki access rights
init_wiki()
{
	rpm -q mediawiki &>/dev/null || return 0
	echo "create database wikidb;" | mysql

	mysql wikidb < /usr/share/installed-db-office-server/wikidb.sql
	echo "GRANT ALL ON wikidb.* TO 'wikiuser'@'localhost.localdomain' IDENTIFIED BY '$WIKI_PASS';" | mysql wikidb
	echo "GRANT ALL ON wikidb.* TO 'wikiuser'@'localhost' IDENTIFIED BY '$WIKI_PASS';" | mysql wikidb
	echo "GRANT ALL ON wikidb.* TO 'wikiuser'@'%' IDENTIFIED BY '$WIKI_PASS';" | mysql wikidb

	sed -i s/wikiadmin/$WIKI_PASS/ /usr/share/installed-db-office-server/LocalSettings.php

	cp /usr/share/installed-db-office-server/LocalSettings.php /var/www/webapps/mediawiki/config/
}

init_rujel()
{

	rpm -q rujel &>/dev/null || return 0
	echo "GRANT ALL PRIVILEGES ON \`Rujel%\`.* TO 'rujel'@'localhost' IDENTIFIED BY '$RUJEL_PASS';" | mysql mysql
	echo "GRANT ALL PRIVILEGES ON \`VseLists\`.* TO 'rujel'@'localhost';" | mysql mysql
	echo "GRANT ALL PRIVILEGES ON \`Contacts\`.* TO 'rujel'@'localhost';" | mysql mysql
	grep -v '^GRANT' /usr/share/rujel/SQL/firstRun.sql | mysql mysql

	sed -i s/RUJELpassword/$RUJEL_PASS/ /etc/webobjects/rujel/modules/database.plist
}

init_owncloud()
{
	rpm -q owncloud &>/dev/null || return 0
echo "create database owncloud;" | mysql
echo "GRANT ALL ON owncloud.* TO 'owncloud'@'localhost.localdomain' IDENTIFIED BY '$OWNCLOUD_PASS';" | mysql owncloud
echo "GRANT ALL ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY '$OWNCLOUD_PASS';" | mysql owncloud 
echo "GRANT ALL ON owncloud.* TO 'owncloud'@'%' IDENTIFIED BY '$OWNCLOUD_PASS';" | mysql owncloud
service httpd2 start
curl 'http://localhost/owncloud/index.php' -d "install=true&adminlogin=root&adminpass=to%be%changed&directory=%2Fvar%2Fwww%2Fwebapps%2Fowncloud%2Fdata&dbtype=mysql&dbuser=owncloud&dbpass=$OWNCLOUD_PASS&dbname=owncloud&dbhost=localhost"
service httpd2 stop
}

init_moodle(){
	mt_install=$(ls /usr/sbin/mt-install-auto) &>/dev/null
	[ -z "$mt_install" ] && exit 0
	$mt_install --install=auto --authset='' --lang=ru --datarootauto --dbrootforce --adminpass="$MOODLE_PASS"
}

control MySQL-server nograntnonet
service mysqld start

PASS=`echo "select Password from user where user='root'" | mysql mysql | grep -v ^$ | grep -v ^Password`

echo "update user set Password = '' where user='root'" | mysql mysql

control MySQL-server grantnonet
service mysqld restart

echo 'select 1;' | mysql &>/dev/null
STATUS=$?
i=0
while [ $i -lt 20 ] && [ "$STATUS" != "0" ]; do
    echo "select 1" | mysql &>/dev/null
    STATUS=$?
    let i=i+1
    if [ "$STATUS" -ge "1" ]; then
	sleep 1
    fi
done

if [ "$i" == "20" ]; then
	echo "can't connect to MySQL server"
    exit 1
fi


init_wiki
init_rujel
init_owncloud

echo "update user set Password = '$PASS' where user='root'" | mysql mysql

service mysqld restart && chkconfig mysqld on
init_moodle
