:
# Freely available software. See appaserver.org
# ---------------------------------------------

if [ "$#" -ne 1 ]
then
	echo "Usage: $0 version" 1>&2
	exit 1
fi

version=$1

integrity_check ()
{
	results=`	cat /etc/appaserver.config		|\
			grep mysql_password=			|\
			grep secret`
	if [ "$results" != "" ]
	then
		echo "You need to set the mysql password." 1>&2
		echo "Check /etc/appaserver.config" 1>&2
		exit 1
	fi

	if [ "$USER" = "root" ]
	then
		echo "You cannot be root to run this." 1>&2
		echo "Dont't: sudo $0" 1>&2
		exit 1
	fi

	if [ ! -d /usr/lib/cgi-bin ]
	then
		echo "Mysql doesn't seem to be installed." 1>&2
		echo "Try: sudo apt-get -y install mysql-server" 1>&2
		exit 1
	fi

	if [ "$DOCUMENT_ROOT" = "" ]
	then
		echo "DOCUMENT_ROOT must be set." 1>&2
		echo "Try: . /etc/profile" 1>&2
		exit 1
	fi

	if [ "$APPASERVER_HOME" = "" ]
	then
		echo "APPASERVER_HOME must be set." 1>&2
		echo "Try: . /etc/profile" 1>&2
		exit 1
	fi

}

compile_appaserver ()
{
	cd $APPASERVER_HOME
	make_appaserver.sh

	return_value=$?

	if [ $return_value -ne 0 ]
	then
		echo "$0 exiting early." 1>&2
		exit 1
	fi
}

create_classgrades_database ()
{
	echo "create database classgrades;" | sql ',' root
}

create_application_shell_script ()
{
	cd /tmp
	wget timriley.net/download/appaserver/create_classgrades_application.sh
	chmod +x create_classgrades_application.sh
	./create_classgrades_application.sh classgrades
}

insert_application_shell_script ()
{
	cd /tmp
	wget timriley.net/download/appaserver/insert_classgrades_application.sh
	chmod +x insert_classgrades_application.sh
	./insert_classgrades_application.sh classgrades
}

create_appaserver_tables ()
{
	cd /tmp
	wget timriley.net/download/appaserver/create_classgrades_appaserver.sh
	chmod +x create_classgrades_appaserver.sh
	./create_classgrades_appaserver.sh classgrades
}

create_classgrades_tables ()
{
	cd /tmp
	wget timriley.net/download/appaserver/create_classgrades.sh
	chmod +x create_classgrades.sh
	./create_classgrades.sh classgrades
}

insert_appaserver_tables ()
{
	cd /tmp
	wget timriley.net/download/appaserver/insert_classgrades_appaserver.sql.gz
	zcat insert_classgrades_appaserver.sql.gz | sql
}

insert_classgrades_tables ()
{
	cd /tmp
	wget timriley.net/download/appaserver/insert_classgrades.sql.gz
	zcat insert_classgrades.sql.gz | sql
}

link_var_www ()
{
	ln -s $APPASERVER_HOME/classgrades $DOCUMENT_ROOT
	ln -s $APPASERVER_HOME/src_classgrades $DOCUMENT_ROOT
	ln -s $APPASERVER_HOME/javascript $DOCUMENT_ROOT
	ln -s $APPASERVER_HOME/hmenu $DOCUMENT_ROOT
}

download_tar_file ()
{
	version=$1
	cd $APPASERVER_HOME
	wget timriley.net/download/appaserver/appaserver_${version}.tar.gz
}

untar_tar_file ()
{
	version=$1
	cd $APPASERVER_HOME
	tar xvzf appaserver_${version}.tar.gz
}

link_icons ()
{
	cd $APPASERVER_HOME
	ln -s `pwd`/trashcan.gif $DOCUMENT_ROOT
	ln -s `pwd`/magnify_glass.gif $DOCUMENT_ROOT
}

integrity_check
download_tar_file $version
untar_tar_file $version
compile_appaserver
create_classgrades_database
create_application_shell_script
insert_application_shell_script
create_appaserver_tables
create_classgrades_tables
insert_appaserver_tables
insert_classgrades_tables
link_var_www
link_icons

upgrade-appaserver-database classgrades

exit 0

