#!/bin/sh

# openbiblio postinstall script
# required parameters: openbiblo_dbname, openbiblo_dbuser, openbiblo_dbpasswd,
#
#
# 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

check_standard_parameters()
{
	if [ "X${vhost_path}" = "X" ]; then
		echo "postinstall: no vhost_path parameter specified for application"
		exit 1
	fi
	if [ "X${domain_name}" = "X" ]; then
		echo "postinstall: no domain_name parameter specified for application"
		exit 1
	fi
	if [ "X${install_prefix}" = "X" ]; then
		echo "postinstall: no install_prefix parameter specified for application"
		exit 1
	fi
	if [ "X${ssl_target_directory}" = "X" ]; then
		echo "postinstall: no ssl_target_directory parameter specified for application"
		exit 1
	fi
};

parse_standard_parameters()
{
	if [ "X${ssl_target_directory}" = "Xtrue" ]; then
		proto="https"
		documents_directory="httpsdocs"
	else
		proto="http"
		documents_directory="httpdocs"
	fi
};

backup_original_config()
{
	if [ ! -f "${openbiblo_config}.orig" ]; then
		# backup original config file
		mv "${openbiblo_config}" "${openbiblo_config}.orig"
	fi
};

read_conf()
{
	if test -r /etc/psa/psa.conf; then
		while read var val; do
			case "$var" in
				[A-Z]*) eval "$var"='"$val"';;
			esac; 
		done </etc/psa/psa.conf
	else
		echo /etc/psa/psa.conf not found
		exit 1
	fi
}

generate_openbiblo_config()
{
	echo "<?php" > ${openbiblo_config}

	echo "define(\"OBIB_HOST\", \"localhost\");" >> ${openbiblo_config}
	echo "define(\"OBIB_DATABASE\", \"${openbiblo_dbname}\");" >> ${openbiblo_config}
	echo "define(\"OBIB_USERNAME\", \"${openbiblo_dbuser}\");" >> ${openbiblo_config}
	echo "define(\"OBIB_PWD\", \"${openbiblo_dbpasswd}\");" >> ${openbiblo_config}

    echo "?>" >> ${openbiblo_config}

};

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
read_conf
check_standard_parameters
parse_standard_parameters

cd ${vhost_path}

openbiblo_config=${vhost_path}/${documents_directory}/${install_prefix}/database_constants.php

backup_original_config
generate_openbiblo_config

exit 0
