@SETLOCAL
@REM @ECHO OFF

@REM ===Begin %1(request)=========================================================
SET REQUEST=%1
SET OPTION=%2


@rem === Replacing environment variable (BEGIN) ==================================
SET HGLAM_INST_PATH=__SetupReplacString_HGLAM__
SET HBAS_INST_PATH=__SetupReplacString_HBase__
@rem === Replacing environment variable (END) ====================================



SET RESULT_FILE=%HGLAM_INST_PATH%\inst\~result_code
SET LOG_FILE=%RESULT_FILE%.log
ECHO Starting Launch. [%0 %1] 1> "%LOG_FILE%"

@rem === Individual ==============================================================
SET HBAS_COMMAND=%HBAS_INST_PATH%\bin\hcmdssrv.exe
SET HIRDB_CHK_COMMAND=%HBAS_INST_PATH%\bin\hcmdsdbstatus.bat
@REM === Before status check =====================================================

SET RUNNING=1
@rem ECHO Execution command. ["%HBAS_COMMAND%" /check /server HiCommand] >>"%LOG_FILE%"
ECHO Execution command. ["%HBAS_COMMAND%" /check ] >>"%LOG_FILE%"
@rem "%HBAS_COMMAND%" /check /server HiCommand
"%HBAS_COMMAND%" /check
SET RTN1=%ERRORLEVEL%
ECHO "%RTN1%" >> "%LOG_FILE%"
IF "%RTN1%" == "0" GOTO HIRDB_CHK
IF "%RTN1%" == "255" GOTO ERROR
IF "%RTN1%" == "1" GOTO RUN

:HIRDB_CHK
IF "%OPTION%" == "FALSE" GOTO PRE_RUN
ECHO Execution command. ["%HIRDB_CHK_COMMAND%" ] >>"%LOG_FILE%"
call "%HIRDB_CHK_COMMAND%"
SET RTN2=%ERRORLEVEL%
ECHO "%RTN2%" >> "%LOG_FILE%"
IF "%RTN2%" == "12" GOTO PRE_RUN
IF "%RTN2%" == "255" GOTO ERROR
GOTO RUN

:PRE_RUN
SET RUNNING=0


:RUN
@REM === Request process =========================================================
IF "stop"=="%REQUEST%"    GOTO STOP_PROC
IF "start"=="%REQUEST%"   GOTO START_PROC
IF "status"=="%REQUEST%"  GOTO STATUS_PROC
SET RESULT=254
GOTO END_PROC


@REM === Stop request ============
:STOP_PROC
  SET RESULT=2
  IF "%RUNNING%"=="0" GOTO END_PROC
 @REM SET RESULT=0
  



SET LOOP_COUNT=1
:LOOP_START
  SET LOOP_COUNT=%LOOP_COUNT%1
  call "%HGLAM_INST_PATH%\inst\sleep.bat" 20
  SET CMDLINE="%HBAS_COMMAND%" /stop /nocheckDBuser >>"%LOG_FILE%"
  ECHO Execution command. [%CMDLINE%] >>"%LOG_FILE%"
  %CMDLINE%
  SET RTN3=%ERRORLEVEL%
  IF "%RTN3%" == "0" GOTO LOOP_END
  IF "%RTN3%" == "1" GOTO LOOP_END

  IF "%LOOP_COUNT%" == "1111111111" GOTO ERROR

  GOTO LOOP_START

:LOOP_END
  SET RESULT=0
  GOTO END_PROC


@REM === Start request ===========
:START_PROC
  SET RESULT=2
  IF "%RUNNING%"=="1" GOTO END_PROC
  SET CMDLINE="%HBAS_COMMAND%" /start
  ECHO Execution command. [%CMDLINE%] >>"%LOG_FILE%"
  %CMDLINE%
  SET RTN4=%ERRORLEVEL%
  IF "%RTN4%" == "255" GOTO ERROR
  SET RESULT=1
  GOTO END_PROC

@REM === Return status ===========
:STATUS_PROC
  ECHO Status check. [%RUNNING%] >>"%LOG_FILE%"
  SET RESULT=%RUNNING%
  GOTO END_PROC

@REM === Common ==================================================================
:ERROR
  ECHO Command Execution error. (result=%RESULT%) >>"%LOG_FILE%"
  SET RESULT=255
:END_PROC
  ECHO Result code print. [code=%RESULT%]>>"%LOG_FILE%"
  ECHO %RESULT% 1> "%RESULT_FILE%"
@REM === Finish ==================================================================
@REM PAUSE
@ECHO ON
@ENDLOCAL
