#!/bin/sh

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_name admin_passwd ; do 
		check_parameter "$pname"
	done

}



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
}
parse_standard_parameters()
{
	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}"
}

edit_sql()
{
	sql_file="${root_d}/tmp_sql_update_file.sql"
	local p_admin_email=`modify_param_for_sql_1 "${admin_name}"`
	local p_admin_passwd=`modify_param_for_sql_1 ${admin_passwd}`
	sql="update family_users set username = '${admin_name}', email='${p_admin_email}'"
	if [ "X${admin_passwd}"!="XNone" ]; then
		sql="${sql}, password=MD5('${p_admin_passwd}')"
	fi
	sql="${sql} where id = 43;"
	echo -n ${sql} >${sql_file}

	${MYSQL_BIN_D}/mysql -u${dbuser} -p${dbpasswd} ${dbname} <${sql_file}
	#rm -f ${sql_file}

};

edit_conf()
{
	local p_description=`modify_param_for_php "${description}"`
	regexp0="s/\(\$email.*\"\).*\"/\1${admin_email}\"/g"
	regexp1="s|\(\$desc.*\"\).*\"|\1${p_description}\"|g"
	sed -e "${regexp0}" -e "${regexp1}" $1 > $1.copy    
	mv -f $1.copy $1 

}

modify_param_for_php()
{
    local cmd='
        s/\\/\\\\\\\\/g;
        s/\$/\\\\\$/g;
        s/\"/\\\\\"/g;';
    local pparam=`echo $1|perl -p -e "$cmd"`
    echo $pparam;
}
modify_param_for_sql()
{
    local cmd='
        s/\\/\\\\\\\\/g;
        s/\$/\\\$/g;
        s/\"/\\\"/g;';
    local pparam=`echo $1|perl -p -e "$cmd" -e "s/'/\\\\\\\\\\\\\\\\\\\\\\\\'/g"`
    echo $pparam;

}
modify_param_for_sql_1()
{
    local cmd='
        s/\\/\\\\/g;'
    local pparam=`echo $1|perl -p -e "$cmd" -e "s/'/\\\\\\\\'/g"`
    echo $pparam;

}
	


cmd='my ($k,$v);
    if (/^([^=]+)=(.+)$/){
        $v=$2;
        chomp $v;
        $k=$1;
        $v =~ s/\\/\\\\/g;
        $v =~ s/\"/\\\"/g;
        $v =~ s/\$/\\\$/g;
        print "${k}=\"${v}\"\n";
    }'
var=`cat|perl -n  -e "$cmd"`
eval $var


read_conf
check_params
parse_standard_parameters

edit_sql
edit_conf ${root_d}/inc/config.inc.php


exit 0
