#!/bin/sh
#
# This is the TouchScale MariaDB installer script.
#

# Detect OS version 
dist=$(lsb_release -si)
ver=$(lsb_release -sr)
nam=$(lsb_release -sc)

# Detect hardware
grep -q "Intel(R) Atom(TM) CPU N2600   @ 1.60GHz" /proc/cpuinfo
if [ $? -eq 0 ]; then
	cpu="N2600"
else
	grep -q "Genuine Intel(R) CPU N270   @ 1.60GHz" /proc/cpuinfo
	if [ $? -eq 0 ]; then
		cpu="N270"
	else
		grep -q "Intel(R) Atom(TM) CPU  330   @ 1.60GHz" /proc/cpuinfo
		if [ $? -eq 0 ]; then
			cpu="330"
		else
			cpu="Generic"
		fi
	fi
fi


CheckPermission() {
    account=`whoami`
    if [ ${account} != "root" ]; then
        echo " ${account}, you are NOT the supervisor."
        echo " The root permission is required to run this installer."
        echo " You must execute this script with sudo"
        exit 1
    fi
}

CheckMariaDBRepo() {
	mariadbver="5.5"
    mariadbrepo="mariadb-updates-$nam.list"
    apt-key list | grep -q "1BB943DB"
    if [ $? -ne 0 ]; then
        echo "Adding new trusted key for MariaDB repository..."
        apt-key adv -q --recv-keys --keyserver keyserver.ubuntu.com 1BB943DB > dummy.txt
        if [ $? -ne 0 ]; then
            echo "PPA key download failed! MariaDB repository not available"
            exit 1
        fi
        rm dummy.txt
    else
		echo "MariaDB source repository already installed."
    fi
    echo "deb http://mirrors.fe.up.pt/pub/mariadb/repo/$mariadbver/ubuntu $nam main" > /etc/apt/sources.list.d/$mariadbrepo
    echo "deb-src http://mirrors.fe.up.pt/pub/mariadb/repo/$mariadbver/ubuntu $nam main" >> /etc/apt/sources.list.d/$mariadbrepo
	echo "Updating sources, please wait..."
	apt-get -qq update
	echo "Installing MariaDB, please wait..."
	apt-get -qq install mariadb-server-$mariadbver
	
	#stop service
	service mysql stop

	#disable default master configuration
	echo "Modifying MariaDB configuration files..."
	grep -q "# log_bin" /etc/mysql/my.cnf
    if [ $? -ne 0 ]; then
		sed -i '/log_bin/s/^/# /' /etc/mysql/my.cnf
		sed -i '/expire_logs_days/s/^/# /' /etc/mysql/my.cnf
		sed -i '/max_binlog_size/s/^/# /' /etc/mysql/my.cnf
	fi
	
	#TODO: Change to utf8 charset on /etc/mysql/conf.d/mariadb.cnf
	
	
	#change default socket location
	sed 's/\/var\/run\/mysqld\/mysqld.sock/\/tmp\/mysql.sock/g' /etc/mysql/my.cnf > /tmp/my.cnf
	sed 's/\/var\/run\/mysqld\/mysqld.sock/\/tmp\/mysql.sock/g' /etc/mysql/debian.cnf > /tmp/debian.cnf
	mv /tmp/my.cnf /etc/mysql/my.cnf
	mv /tmp/debian.cnf /etc/mysql/debian.cnf
	
# Not needed - statically linked
	# obtain LGPL MariaDB client library
#	echo "Installing MariaDB LGPL client library, please wait..."
#	cd /tmp
#	wget -qnc http://mirror2.hs-esslingen.de/mariadb/mariadb-native-client/Debian-squeeze/i386/mariadb_client-1.0.0-Linux.tar.gz
#	if [ $? -eq 0 ]; then
#		tar -xf mariadb_client-1.0.0-Linux.tar.gz
#		if [ $? -eq 0 ]; then
#			cp -fd mariadb_client-1.0.0-Linux/bin/* /usr/local/bin
#			cp -fd mariadb_client-1.0.0-Linux/lib/* /usr/local/lib
#			echo "MariaDB LGPL client library installed."
#		else
#			echo "MariaDB LGPL client library installation failed!"
#		fi
#	else
#		echo "Download MariaDB LGPL client library failed!"
#	fi

	service mysql start
}

TestLinuxVersion() {

	echo "Detected $dist $nam $ver on $cpu CPU machine"
	
}

RemoveMySQL() {

	echo Removing MySQL...
	apt-get -qq autoremove mysql-client-5.1 mysql-client-core-5.1 mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1 libmysqlclient16 touchscale
	rm -rf /var/log/mysql
	rm -rf /var/lib/mysql
	rm -rf /etc/mysql
}


CheckPermission
#TestLinuxVersion
#RemoveMySQL
CheckMariaDBRepo
