#!/bin/sh

# here is also some standard parameters, that must be specified:
# vhost_path - full path to vhost root directory
# domain_name - name of domain
# install_prefix - path of application inside vhost directory
# ssl_target_directory - true, if application is in httpsdocs

# list of additional parameters:
# dbuser
# dbpasswd
# dbname
# admin_login
# admin_passwd
# admin_email


read_params()
{

var=`cat | awk '{
	eqpos=index($0, "=");
	if (eqpos>1) {
		var=substr($0, 1, eqpos-1);
		val=substr($0, eqpos+1);

		tmp="[\x5c\x5c]";
		tmp2="\x5c\x5c\x5c\x5c";
		gsub(tmp,tmp2,val);


		tmp2="\x5c\x5c\x5c\x22";
		gsub("\"",tmp2,val);
		print var "=\"" val "\"";
	};
}'`


eval $var

# now we have full set of parameters, stored in variables
# readconf
	while read var val; do
		case "$var" in
			[A-Z]*) eval "$var"='"$val"';;
		esac; 
	done </etc/psa/psa.conf

};

check_parameter()
{
	local pname="$1"
	if eval "test -z \"\$$pname\"";then
		scrname="`basename "$0"`"
		echo "$scrname: no $pname parameter specified for application"
		exit 1
	fi
}

check_params()
{
	for pname in vhost_path domain_name install_prefix \
			dbuser dbpasswd dbname \
			admin_email admin_login admin_passwd; do 
		check_parameter "$pname"
	done

}

parse_params()
{
	if [ "X${ssl_target_directory}" = "Xtrue" ]; then
		documents_directory="httpsdocs"
		proto="https"
	else
		documents_directory="httpdocs"
		proto="http"
	fi
	root_d="${vhost_path}/${documents_directory}/${install_prefix}"

#try to detect whether ImageMagick or GD version 
	if [ -x /usr/bin/convert ];then
		gd_version="im"
		im_path="/usr/bin/"
	else
		tmp_file=${root_d}/php_tmp.php
		echo "<? \
if (function_exists('gd_info')) \
{ \$gd=gd_info();\
echo \$gd['GD Version']; \
}?>" > ${tmp_file}
		php -q ${tmp_file} > ${tmp_file}.copy
		gd_version=`sed -e "s|[A-Za-z ()]||g" ${tmp_file}.copy`
		rm -f ${tmp_file} ${tmp_file}.copy
	
		if [ "X$gd_version" != "X" ]; then
				cond=`expr $gd_version : 2`
				case $cond in
					1) gd_version="gd2" ;;
					0) gd_version="gd1" ;;
				esac
		else
				echo "You must install PHP GD library or ImageMagick"
				exit 1
		fi
	fi
	
}


edit_config()
{
	
	regexp0="s|\(dbname'.*'\).*'|\1${dbname}'|g"	
	regexp1="s|\(dbuser'.*'\).*'|\1${dbuser}'|g"	
	regexp2="s|\(dbpass'.*'\).*'|\1${dbpasswd}'|g"		
	
	sed -e "${regexp0}" -e "${regexp1}" -e "${regexp2}" "${config_file_dist}" > "${config_file}"

	if [ $? -ne 0 ]; then
		echo "Error while edit config file"
		exit 1
	fi
};


edit_schema()
{
regexp0="s|_site_url_|${url}|g"
regexp1="s|_admin_login_|${admin_login}|g"
regexp2="s|_admin_passwd_|${admin_passwd}|g"
regexp3="s|_admin_email_|${admin_email}|g"
regexp4="s|_gallery_name_|${gallery_name}|g"
regexp5="s|_gallery_description_|${gallery_description}|g"
regexp6="s|_gallery_language_|${gallery_language}|g"
regexp7="s|_gallery_theme_|${gallery_theme}|g"
regexp8="s|'gd2'|'${gd_version}'|g"
regexp9="s|\('impath'.*'\).*'|\1${im_path}'|g"

sed -e "${regexp0}" -e "${regexp1}" -e "${regexp2}" -e "${regexp3}" -e "${regexp4}" -e "${regexp5}" -e "${regexp6}" -e "${regexp7}" -e "${regexp8}" -e "${regexp9}" ${mysql_schema_file} >${mysql_schema_file}.copy

if [ $? -ne 0 ]; then
	echo "Error while edit sql schema file"
	exit 1
fi

mv -f ${mysql_schema_file}.copy  ${mysql_schema_file}
};

#Forming database and remove files

read_params
check_params
parse_params

url="${proto}://${domain_name}/${install_prefix}/"
mysql_schema_file="${root_d}/schema.sql"
config_file_dist="${root_d}/include/config.inc.php.sample"
config_file="${root_d}/include/config.inc.php"

edit_config
edit_schema

${MYSQL_BIN_D}/mysql -u"${dbuser}" -p"${dbpasswd}" "${dbname}" < ${mysql_schema_file}
chmod 766 ${config_file}
chmod -R 777 ${root_d}/albums ${root_d}/include

exit 0
