@echo off
setlocal

REM ##### 初期設定 #####
set OPENSTANDIA_INSTALLER_VER=3.0.0.0beta
set STACK_XML=stack-%OPENSTANDIA_INSTALLER_VER%.xml
set LICENSE_FILE=license.txt
set ANT_DIR=apache-ant-1.7.0
set SCRIPTS_DIR=scripts
set OPENOLAP_NO=1


REM ##### 初期処理 #####
set CURRENT_DIR=%~dp0
if NOT "%CURRENT_DIR:~-1%" == "\" (
	set CURRENT_DIR=%CURRENT_DIR%\
)
set ANT_HOME=%CURRENT_DIR%lib\%ANT_DIR%
set PATH=%ANT_HOME%\bin;%CURRENT_DIR%bin;%PATH%
set SCRIPTS_DIR=%CURRENT_DIR%%SCRIPTS_DIR%
if NOT "%SCRIPTS_DIR:~-1%" == "\" (
	set SCRIPTS_DIR=%SCRIPTS_DIR%\
)


REM ##### 実行ユーザー権限チェック #####
call %CURRENT_DIR%bin\CheckAuthority.bat
if errorlevel 1 (
	echo 実行ユーザーにAdministrators権限がないため処理を続行できません。
	goto end
)


REM ##### javaインストールチェック #####
call %CURRENT_DIR%bin\CheckInstalledJava.bat
if errorlevel 1 (
	echo javaがインストールされていないため処理を続行できません。
	goto end
)


REM ##### 画面表示 #####
cls
echo OpenStandia Ver.%OPENSTANDIA_INSTALLER_VER%
echo 各種OSSのインストール、アンインストール、アップデート処理をします。
echo.
echo 処理を選択してください。
echo 1 : インストール
echo 2 : アンインストール
echo 3 : アップデート
set MODE_NO=1
set /p MODE_NO=
if "%MODE_NO%" == "1" (
	set MODE=install
	set MODE_STR=インストール
)
if "%MODE_NO%" == "2" (
	set MODE=uninstall
	set MODE_STR=アンインストール
)
if "%MODE_NO%" == "3" (
	set MODE=update
	set MODE_STR=アップデート
)


REM ##### ライセンス表示 ######
if "%MODE%" == "install" (
	cls
	more "%LICENSE_FILE%"
	set RESULT=n
	set /p RESULT=同意しますか？^(y/n^) [n]
) else (
	goto next
)
if "%RESULT%" == "y" (
	goto next
)
goto end
:next


REM ##### インストール全体前処理 #####
echo.
call ant -Dmode=%MODE% -DstackXml=%STACK_XML% -f "%SCRIPTS_DIR%install-before.xml"
if errorlevel 1 goto error


REM ##### ダウンロード実行 #####
echo.
echo ダウンロード処理を開始します...
call ant -Dno=%OPENOLAP_NO% -DstackXml=%STACK_XML% -f "%SCRIPTS_DIR%download.xml"
if errorlevel 1 goto error


REM ##### インストール実行 #####
set INSTALLED_NO=
echo.
echo %MODE_STR%処理を開始します...
call ant -Dno=%OPENOLAP_NO% -Dmode=%MODE% -DstackXml=%STACK_XML% -f "%SCRIPTS_DIR%install.xml"
if errorlevel 1 goto error
set INSTALLED_NO=%INSTALLED_NO%,%OPENOLAP_NO%


REM ##### インストール全体後処理 #####
echo.
call ant -Dmode=%MODE% -DstackXml=%STACK_XML% -f "%SCRIPTS_DIR%install-after.xml"
if errorlevel 1 goto error

goto end
REM ##### 異常終了 #####
:error
echo %MODE_STR%処理の途中で異常が発生しました...


REM ##### 処理終了 #####
:end
echo %MODE_STR%処理を終了しました...

endlocal
