#!/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_name
# admin_passwd

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 ssl_target_directory \
			dbuser dbpasswd dbname \
			admin_email admin_name 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

};

edit_config()
{
	regexp0="s|_install_domain_|${domain_name}|g"
	regexp1="s|_install_prefix_|${install_prefix}|g"
	regexp2="s|_install_url_|${url}|g"
	regexp3="s|_install_path_|${root_d}|g"
	
	regexp4="s/_dbname_/${dbname}/g"
	regexp5="s/_dbuser_/${dbuser}/g"
	regexp6="s/_dbpasswd_/${dbpasswd}/g"
	
	sed -e "${regexp0}" -e "${regexp1}" -e "${regexp2}" -e "${regexp3}" -e "${regexp4}" -e "${regexp5}" -e "${regexp6}" "${config_file}" > "${config_file}.copy"
	mv -f ${config_file}.copy ${config_file}

};

edit_vars()
{
	regexp0="s|_install_path_|${root_d}|g"
	sed -e "${regexp0}" ${vars_file} > ${vars_file}.copy
        mv -f ${vars_file}.copy ${vars_file}
};

edit_schema()
{
regexp1="s|_admin_name_|${admin_name}|g"
regexp2="s|_admin_passwd_|${admin_passwd}|g"
regexp3="s|_admin_email_|${admin_email}|g"
sed -e "${regexp1}" -e "${regexp2}" -e "${regexp3}" ${mysql_schema_file} >${mysql_schema_file}.copy
mv -f ${mysql_schema_file}.copy  ${mysql_schema_file}
};
#Forming database and remove files

read_params
check_params
parse_params
root_d="${vhost_path}/${documents_directory}/${install_prefix}"
url="${proto}//${domain_name}/${install_prefix}"
mysql_schema_file="${root_d}/install/schema.sql"
config_file="${root_d}/include/vars.php"
vars_file="${root_d}/include-locations.inc"

edit_config
edit_schema
edit_vars
${MYSQL_BIN_D}/mysql "-u${dbuser}" "-p${dbpasswd}" "${dbname}" < ${mysql_schema_file}

echo "php_flag register_globals Off" >>${root_d}/.htaccess

mkdir -p ${root_d}/storage
chmod -R 777 ${root_d}/storage

mkdir -p ${root_d}/tmp
chmod -R 777 ${root_d}/tmp

mkdir -p "${root_d}/export"
chmod -R 777 "${root_d}/export"

chmod 777 ${root_d}/include/plugin-cfg.php


exit 0
