#!/bin/bash

# default ENV.
dataDir='./AsaBoard/data'
bn='./AsaBoard/bn'
bn_board='./AsaBoard/bn/board'
bn_notice='./AsaBoard/bn/notice'
noSkinDir='./AsaBoard/data/noSkin'
fileName='./AsaBoard.tar.gz'
hostName='210.124.122.64'
eFileNotFound='¾Æ»çº¸µå°¡ ¾ø½À´Ï´Ù. ¾Æ»ç´Þ È¨¿¡¼­ ¸ÕÀú ´Ù¿îÀ» ¹ÞÀ¸½Ã±â ¹Ù¶ø´Ï´Ù'
eInstallSuccess='¾Æ»çº¸µå°¡ ¼º°øÀûÀ¸·Î ¼³Ä¡µÇ¾ú½À´Ï´Ù. ¾Æ»çº¸µå¸¦ ¼±ÅÃÇØ ÁÖ¼Å¼­ °¨»çÇÕ´Ï´Ù.'
eisDataDir='data µð·ºÅä¸®¸¦ »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù. °ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇÏ½Ã±â ¹Ù¶ø´Ï´Ù.'

# function definition block
printLogo()
{
	echo '#####################################'
	echo '#                                   #'
	echo '#    AsaBoard by ASADAL INTERNET    #'
	echo '#           VERSION : 1.0           #'
	echo '#          Bulid NO : 011005        #'
	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 '»ç¿ë µ¥ÀÌÅÍº£ÀÌ½ºÀÇ À¯Àú¸íÀ» ÀÔ·ÂÇÏ½Ê½Ã¿À.[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
}

# starting point of this install program
while [ 1 ]
do
	echo '¾Æ»çº¸µå´Â mySQLÀ» »ç¿ëÇÕ´Ï´Ù. ±×·¯¹Ç·Î mySQL DB È£½ºÆÃ ¼­ºñ½º¸¦ ¹Þ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.'
	echo 'mySQL DB È£½ºÆÃ ¼­ºñ½º¸¦ ¹Þ°í ÀÖÁö ¾Ê´Ù¸é ¼­ºñ½º¸¦ ½ÅÃ»ÇÑ ÈÄ¿¡ ¾Æ»çº¸µå¸¦ »ç¿ëÇÏ½Ê½Ã¿À.'
	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 .... done'
else
	echo $eFileNotFound
	exit 0
fi

if [ ! -d $bn ]
then
	mkdir $bn
	chmod 777 $bn
	echo 'make Directory named bn ... done'
fi

if [ ! -d $bn_board ]
then
	mkdir $bn_board
	chmod 777 $bn_board
	echo 'make Directory named /bn/board ... done'
fi
if [ ! -d $bn_notice ]
then
	mkdir $bn_notice
	chmod 777 $bn_notice
	echo 'make Directory named /bn/notice ... done'
fi

if [ ! -d $dataDir ]
then
	mkdir $dataDir
	chmod 777 $dataDir
	echo 'make Directory named data .... done'
	cd ./AsaBoard/data
	dirList='ls *'
	for temp in echo $dirList
	do
		if [ -d $temp ]
		then
			chmod 777 $temp
		fi
	done
	cd ..
	cd ..
	echo 'change permission of Skin Directory .... done'
fi

if [ ! -d $noSkinDir ]
then
	mkdir $noSkinDir
	chmod 777 $noSkinDir
	echo 'make Directory named noSkin .... done'	
fi

fileContents="<? \$db_name = \"$dbName\"; \$host_name = \"$hostName\"; \$user_name = \"$userName\"; \$user_passwd = \"$pw\"; ?>"
envFile="<? \$boardPath=\"/~AsaProgram/AsaBoard\"; \$boardPathFixed=\"/~AsaProgram/AsaBoard\"; \$classPath=\"/home/AsaProgram/public_html/AsaBoard\"; ?>"

# create Database
echo 'using boardAdmin.sql'
/usr/local/mysql/bin/mysql -h$hostName -u$userName -p$pw $dbName < ./AsaBoard/sql/boardAdmin.sql
echo 'create boardAdmin .... done'

echo 'using boardAdminSU.sql'
/usr/local/mysql/bin/mysql -h$hostName -u$userName -p$pw $dbName < ./AsaBoard/sql/boardAdminSU.sql
echo 'create boardAdminSU .... done'

echo 'using boardSetup.sql'
/usr/local/mysql/bin/mysql -h$hostName -u$userName -p$pw $dbName < ./AsaBoard/sql/boardSetup.sql 
echo 'create boardSetup & asaboard_pub .... done'

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

#create a File named 'env.php'
echo $envFile > ./AsaBoard/env.php
echo 'create a file, env.php .... done'

echo '' > ./AsaBoard/data/noSkin/xeoneo

echo '' > ./AsaBoard/bn/board/begin.htm
echo 'create a file, begin.htm .... done'

echo '' > ./AsaBoard/bn/board/end.htm
echo 'create a file, end.htm .... done'

echo '' > ./AsaBoard/bn/notice/begin.htm
echo 'create a file, begin.htm .... done'

echo '' > ./AsaBoard/bn/notice/end.htm
echo 'create a file, end.htm .... done'

echo 'using default.sql'
/usr/local/mysql/bin/mysql -h$hostName -u$userName -p$pw $dbName < ./AsaBoard/sql/default.sql 
echo 'create default board ... done'

# print install success logo & finish the install program
echo $eInstallSuccess
