#!/bin/bash

# default ENV.
fileName='./AsaMemberClient.tar.gz'
hostName='localhost'
eFileNotFound='¾Æ»ç¸â¹ö¸¦ Ã£À» ¼ö ¾ø½À´Ï´Ù. ¾Æ»ç´ÞÀÎÅÍ³ÝÀÇ ¾Æ»ç¸â¹ö¸¦ ±¸ÀÔÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.'
eInstallSuccess='¾Æ»ç¸â¹ö°¡ ¼º°øÀûÀ¸·Î ¼³Ä¡µÇ¾ú½À´Ï´Ù. ¾Æ»ç¸â¹ö¸¦ ¼±ÅÃÇØ ÁÖ¼Å¼­ °¨»çÇÕ´Ï´Ù.'
sqlDir = './AsaMember/sql'

# function definition block
printLogo()
{
	echo '#####################################'
	echo '#                                   #'
	echo '#    AsaMember by ASADAL INTERNET   #'
	echo '#           VERSION : 1.6.x         #'
	echo '#                                   #'
	echo '#####################################'
}

dbInfo()
{
	# input database name
	while [ 1 ]
	do
	echo -n 'µ¥ÀÌÅÍº£ÀÌ½º¸íÀ» ÀÔ·ÂÇÏ½Ê½Ã¿À.[Database Name] : '
	read dbName
	if [ "$dbName" = "" ]
	then 
		echo 'Á¤È®ÇÑ Á¤º¸¸¦ ÀÔ·ÂÇÏ½Ê½Ã¿À.[ Database Name ]'
		continue
	else
		break
	fi
	done	
	
	# input user name
	while [ 1 ]
	do
	echo -n 'mySQL µ¥ÀÌÅÍº£ÀÌ½ºÀÇ À¯Àú¸íÀ» ÀÔ·ÂÇÏ½Ê½Ã¿À.[User Name] : '
	read userName
	if [ "$userName" = "" ]
	then
		echo 'Á¤È®ÇÑ Á¤º¸¸¦ ÀÔ·ÂÇÏ½Ê½Ã¿À.[ User Name ]'
		continue
	else
		break
	fi
	done
	
	# input user's password
	while [ 1 ]
	do
	echo -n 'µ¥ÀÌÅÍº£ÀÌ½ºÀÇ ÆÐ½º¿öµåÀ» ÀÔ·ÂÇÏ½Ê½Ã¿À.[Password] : '
	read pw
	if [ "$pw" = "" ]
	then
		echo 'Á¤È®ÇÑ Á¤º¸¸¦ ÀÔ·ÂÇÏ½Ê½Ã¿À.[ Password ]'
		continue
	else
		break
	fi
	done

	# input company name or user name
	while [ 1 ]
	do
	echo -n 'È¸»ç¸í ¶Ç´Â »ç¿ëÀÚ¸íÀ» ÀÔ·ÂÇÏ½Ê½Ã¿À.[Company or User Name]'
	read companyName
	if [ "$companyName" = "" ]
	then
		echo 'Á¤È®ÇÑ Á¤º¸¸¦ ÀÔ·ÂÇÏ½Ê½Ã¿À.[ Company or User Name]'
		continue
	else
		break
	fi
	done

	# input domain name
	while [ 1 ]
	do
	echo -n 'µµ¸ÞÀÎ¸íÀ» ÀÔ·ÂÇÏ¼¼¿ä.[Domain Name] : '
	read domainName
	if [ "$domainName" = "" ]
	then
		echo 'Á¤È®ÇÑ Á¤º¸¸¦ ÀÔ·ÂÇÏ½Ê½Ã¿À.[ Domain Name ]'
		continue
	else
		break
	fi
	done

	# input admin eMail Adrs
	while [ 1 ]
	do
	echo -n '°ü¸®ÀÚÀÇ ÀÌ¸ÞÀÏ ÁÖ¼Ò¸¦ ÀÔ·ÂÇÏ½Ê½Ã¿À.[Admin Email Address]'
	read adminEmail
	if [ "$adminEmail" = "" ]
	then
		echo 'Á¤È®ÇÑ Á¤º¸¸¦ ÀÔ·ÂÇÏ½Ê½Ã¿À.[ Admin Email Address ]'
		continue
	else
		break
	fi
	done
}

# starting point of this install program
while [ 1 ]
do
	echo '¾Æ»ç¸â¹ö´Â ±âº» µ¥ÀÌÅÍº£ÀÌ½º·Î mySQLÀ» »ç¿ëÇÕ´Ï´Ù.'
	echo '¾Æ»ç´Þ ÀÎÅÍ³Ý¿¡ È£½ºÆÃ ¼­ºñ½º¸¦ ¹Þ°í °è½Ã´Ù¸é DBÈ£½ºÆÃ ¶ÇÇÑ ¼­ºñ½º ¹Þ°í °è¼Å¾ß ÇÕ´Ï´Ù.'
	echo 'mySQL µ¥ÀÌÅÍº£ÀÌ½º¸¦ »ç¿ëÇÏ°í ÀÖÁö ¾Ê´Ù¸é ¼­ºñ½º¸¦ ½ÅÃ»ÇÑ ÈÄ¿¡ ¾Æ»ç¸â¹ö¸¦ ¼³Ä¡ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù.'
	echo -n '°í°´²²¼­´Â mySQL DB È£½ºÆÃ ¼­ºñ½º¸¦ ¹Þ°í °è½Ê´Ï±î? [y/n]'

	read confirm
	if [ "$confirm" = "N" -o "$confirm" = "n" ]
	then
		clear
		echo 'mySQL DB È£½ºÆÃ ¼­ºñ½º ½ÅÃ» ÈÄ ´Ù½Ã ¼³Ä¡ÇØ ÁÖ½Ê½Ã¿À .... °¨»çÇÕ´Ï´Ù.'
		printLogo
		exit 0
	elif [ "$confirm" = "Y" -o "$confirm" = "y" ]
	then
		clear
		break
	fi
done

if [ ! -f $fileName ]
then
	echo $eFileNotFound
	exit 0
fi

# get some datum to create a file
dbInfo

while [ 1 ]
do
	echo -n 'Á¤È®ÇÑ Á¤º¸¸¦ ÀÔ·ÂÇÏ¼Ì½À´Ï±î? [y/n] '
	read confirm
	if [ "$confirm" = "N" -o "$confirm" = "n" ]
	then
		clear
		dbInfo
	elif [ "$confirm" = "Y" -o "$confirm" = "y" ]
	then
		clear
		break
	fi
done

if [ -f $fileName ]
then
	tar xvfz $fileName
	echo 'tar AsaMemberClient.tar.gz .... done'
else
	echo $eFileNotFound
	exit 0
fi

fileContents="<? \$db_name = \"$dbName\"; \$host_name = \"$hostName\"; \$user_name = \"$userName\"; \$user_passwd = \"$pw\"; \$ck_name=\"userLog_program\"; ?>"
defaultSetup="update asa_cfg set companyName='$companyName', adminEmail='$adminEmail', afterLogin='http://$domainName', afterLogout='http://$domainName', rtLogin='1', openList='4', listList='-¼º¸í-¾ÆÀÌµð-ÀÌ¸ÞÀÏ-ºÎ¼­¸í-Á÷ÀåÀüÈ­-ÈÞ´ëÆù', openStat='4', mailBody='<pre>\n¾È³çÇÏ¼¼¿ä?\nÀúÈñ »çÀÌÆ®ÀÇ È¸¿øÀ¸·Î °¡ÀÔÇØ ÁÖ¼Å¼­ °¨»çÇÕ´Ï´Ù.\n\n´ÙÀ½ ¾ÆÀÌµð¿Í ¾ÏÈ£¸¦ »ç¿ëÇÏ¿© ÀúÈñ »çÀÌÆ®¿¡ ·Î±×ÀÎÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.\n\n¾ÆÀÌµð : [¾ÆÀÌµð]\n¾ÏÈ£ : [¾ÏÈ£]\nÀÌ¸ÞÀÏ : [ÀÌ¸ÞÀÏ]\n¾ÆÀÌµð¿Í ¾ÏÈ£´Â ´Ù¸¥ »ç¶÷ÀÌ ¾Ë ¼ö ¾øµµ·Ï ¾ÈÀüÇÑ °÷¿¡ º¸°üÇÏ½Ã°í,\nº¸¾ÈÀ» À§ÇÏ¿© ÀÚÁÖ º¯°æÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.\n\n°¨»çÇÕ´Ï´Ù.\n</pre>', mailBody_bl='<pre>\n¾È³çÇÏ¼¼¿ä?\n±ÍÇÏ´Â ÀúÈñ »çÀÌÆ®¿¡ ºÒ·®È¸¿øÀ¸·Î µî·ÏµÇ¾ú½À´Ï´Ù.\n\nºÒ·®È¸¿øÀ¸·Î µî·ÏµÇ¸é ÀúÈñ »çÀÌÆ®¿¡ ·Î±×ÀÎÀÌ µÇÁö ¾ÊÀ¸¸ç,\nÈ¸¿øÅ»Åð³ª Àç°¡ÀÔµµ Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.\n¾ÆÀÌµð : [¾ÆÀÌµð]\nÀÌ¸ÞÀÏ : [ÀÌ¸ÞÀÏ]\nµî·ÏµÈ ½Ã°£: [Çö½Ã°£]\n¸¸¾à ´Ù½Ã Á¤»óÈ¸¿øÀÇ ÀÚ°ÝÀ» ¾ò°í ½Í´Ù¸é,\nÀúÈñ »çÀÌÆ® ¿î¿µÀÚ¿¡°Ô ¿¬¶ôÀ» ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù.\n\n°¨»çÇÕ´Ï´Ù.\n</pre>', mailHeader01='<center>\n<table><tr><td>\n<pre>\n¾È³çÇÏ¼¼¿ä?\n', mailFooter01='°¨»çÇÕ´Ï´Ù.\n</pre>\n</td></tr></table>\n</center>\n', mailHeader02='<center>\n<table><tr><td>', mailFooter02='¾Æ»ç´ÞÀÎÅÍ³Ý(ÁÖ) <a href=http://asadal.com target=_blank>www.asadal.com</a><br>\n135-080 ¼­¿ï½Ã °­³²±¸ ¿ª»ïµ¿ 746¹øÁö PMKºôµù 8Ãþ<br>\n´ëÇ¥ÀüÈ­: 02-3461-1114, ÆÑ½º: 02-555-2994<br>\n</td></tr></table>\n</center>'"

# create Table
echo 'using asm_admins.sql'
/usr/local/mysql/bin/mysql -u$userName -p$pw $dbName < ./AsaMember/sql/asm_admins.sql
echo 'create asm_admins .... done'

echo 'using asm_cfg.sql'
/usr/local/mysql/bin/mysql -u$userName -p$pw $dbName < ./AsaMember/sql/asm_cfg.sql
echo 'create asm_cfg .... done'

echo 'using asm_zipcode.sql'
/usr/local/mysql/bin/mysql -u$userName -p$pw $dbName < ./AsaMember/sql/asm_zipcode.sql 
echo 'create asm_zipcode .... done'

echo 'using asm_formDatum.sql'
/usr/local/mysql/bin/mysql -u$userName -p$pw $dbName < ./AsaMember/sql/asm_formDatum.sql 
echo 'create asm_formDatum .... done'

echo 'using asm_memberDatum.sql'
/usr/local/mysql/bin/mysql -u$userName -p$pw $dbName < ./AsaMember/sql/asm_memberDatum.sql 
echo 'create asm_memberDaum .... done'

echo 'using asm_mileage.sql'
/usr/local/mysql/bin/mysql -u$userName -p$pw $dbName < ./AsaMember/sql/asm_mileage.sql
echo 'create asm_mileage .... done'

# create a File named 'basic.cfg.php'
echo $fileContents > ./AsaMember/basic.cfg.php
echo 'create a file, basic.cfg.php .... done'

echo $defaultSetup > ./AsaMember/sql/asm_defaultSetup.sql
echo 'create a file, asm_defaultSetup.sql .... done'

# create default setup
/usr/local/mysql/bin/mysql -u$userName -p$pw $dbName < ./AsaMember/sql/asm_defaultSetup.sql
echo 'create a default setup .... done'

# print install success logo & finish the install program
echo $eInstallSuccess
chown $userName.user -R AsaMember
rm -rf ./AsaMember/sql
printLogo
