#!/usr/bin/php
<?php
	chdir(dirname($argv[0]));
	require("../libraries/configuration.php");

	print "Make sure the database settings in settings/website.conf are correct!\n\n";

	/* Get MySQL root password
	 */
	do {
		print "Enter MySQL root password: ";
		system("stty -echo");
		$password = trim(fgets(STDIN));
		system("stty echo");
		print "\n";
	} while ($password == "");

	/* Connect to MySQL server
	 */
	ob_start();
	$db = new MySQLi_connection(DB_HOSTNAME, "mysql", "root", $password);
	ob_end_clean();

	if ($db->connected == false) {
		exit("Can't connect to MySQL database.\n");
	}

	$db->query("begin");

	/* Create user
	 */
	$query = "create user %s@%s identified by %s";
	if ($db->query($query, DB_USERNAME, "localhost", DB_PASSWORD) == false) {
		$db->query("rollback");
		exit("Error creating user\n");
	}

	/* Create database
	 */
	$query = "create database %S";
	if ($db->query($query, DB_DATABASE) == false) {
		$db->query("rollback");
		exit("Error creating database\n");
	}

	/* Set access rights
	 */
	$rights = array(
		"select", "insert", "update", "delete",
		"create", "drop", "alter", "index", "lock tables",
		"create view", "show view");

	$query = "grant ".implode(", ", $rights)." on %S.* to %s@%s";
	if ($db->query($query, DB_DATABASE, DB_USERNAME, "localhost") == false) {
		$db->query("rollback");
		exit("Error setting access rights\n");
	}

	/* Commit changes
	 */
	$db->query("commit");
	$db->query("flush privileges");

	/* Import tables
	 */
	system("mysql -u ".DB_USERNAME." --password=".DB_PASSWORD." ".DB_DATABASE." < mysql.sql");
?>
