echo off

REM  Hitachi SVP                               
REM  Apache Install tool for Hitachi SVP
REM       All Rights Reserved, Copyright (C) 2015-2020,Hitachi, Ltd.
REM
REM History  :Version    :DATE        : Coder        : Patch No
REM Hitachi SVP 
REM          :01-00      :2015.01.20  : S.Moriya     : W71D2227901
REM          :01-01      :2015.03.19  : S.Moriya     : W71D2222811
REM          :01-02      :2019.08.28  : J.Okuno      : #82714 (Apache2.4.39 is supported) 
REM          :02-00      :2020.01.27  : T.Yamanaka   : #97547 (Strawberry Perl 5.28.2 is supported) 
REM
REM
REM Document
REM OSS version output
REM
REM

pushd %~dp0

set OSS_VER="C:\DKC200\san\cgi-bin\Utility\LOG\OSS_version.txt"
set OSSVER_LOG="C:\DKC200\san\cgi-bin\Utility\LOG\OSS_verlog.txt"

IF not EXIST "C:\OSS_TMP" md "C:\OSS_TMP" >> %OSSVER_LOG%

REM Apache set
set Apache_LOG="C:\OSS_TMP\tmp_apache.log"
set APCHE_VER="C:\OSS_TMP\Apache_VER.log"
REM openssl set
set SSL_LOG="C:\OSS_TMP\tmp_ssl.log"
set SSL_VER="C:\OSS_TMP\ssl_ver.log"
REM Java set
set JAVA_LOG="C:\OSS_TMP\tmp_java.log"
set JRE_VER="C:\OSS_TMP\JRE_ver.log"
set JDK_VER="C:\OSS_TMP\JDK_ver.log"
REM Tomcat set
set TOMCAT_VER="C:\OSS_TMP\Tomcat_VER.log"
REM PERL set
set PERL_LOG="C:\OSS_TMP\tmp_perl.log"
set PERL_VER="C:\OSS_TMP\perl_ver.log"
REM Flash set
set FLASH_VER="C:\OSS_TMP\Flash_ver.log"
REM VC++Runtime set
set RUNTIME_LOG="C:\OSS_TMP\tmp_runtime.log"
set RUNTIME_VER="C:\OSS_TMP\Runtime_ver.log"
set RUNTIME_PERL="RUNTIMEVersion.pl"
set RUNTIME_CHK_REGKEY="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X64"
set RUNTIME_VER_REGKEY="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
set RUNTIME_REGNAME="Version"
set RUNTIME_DISPLAYNAME="DisplayName"
set RUNTIME_DISPLAYVER="DisplayVersion"

echo [%date%-%time%] > %OSS_VER%
echo [%date%-%time%] > %OSSVER_LOG%

ECHO [OSS version] >> %OSS_VER%
 

REM Apache data acquisition 
REM cd "C:\Program Files\Apache Group\Apache2\bin"
REM pushd "C:\Program Files\Apache Group\Apache2\bin"
REM W71D2222811 for

REM Apache Directory log
dir >> %OSSVER_LOG%
echo [Apache] >> %OSSVER_LOG%

IF EXIST "C:\Program Files\Apache Group\Apache2\bin\httpd.exe" ( 
	echo "Apache is installed" >> %OSSVER_LOG%
	"C:\Program Files\Apache Group\Apache2\bin\httpd.exe" -V > %Apache_LOG%
	perl "ApacheVersion.pl" %Apache_LOG% %APCHE_VER%
 ) else ( 
	echo "Apache is not installed" >> %OSSVER_LOG%
 	echo [Apache version:-] > %APCHE_VER%
 ) 



REM openssldata acquisition
echo [Openssl] >> %OSSVER_LOG%
IF EXIST "C:\Program Files\Apache Group\Apache2\bin\openssl.exe" ( 
	echo "Openssl is installed" >> %OSSVER_LOG%
	"C:\Program Files\Apache Group\Apache2\bin\openssl.exe" version > %SSL_LOG% 2>>&1
	perl "OpensslVersion.pl" %SSL_LOG% %SSL_VER%
 ) else ( 
	echo "Openssl is not installed" >> %OSSVER_LOG%
 	echo [Openssl version:-] > %SSL_VER%
 ) 

REM cd %~dp0
REM pushd %~dp0
REM IF EXIST "C:\Program Files\Apache Group\Apache2\bin" popd >> %OSSVER_LOG%


REM OSS Directory log
REM dir >> %OSSVER_LOG%
REM W71D2222811 To

REM  "initialize Tomcat"
echo [Tomcat] >> %OSSVER_LOG%
echo [Tomcat version:-] > %TOMCAT_VER%
REM Tomcat version 
for /f "tokens=*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation" /s') do (
	if "%%~i"=="HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat\7.0\Tomcat7" set Tomcat=YES_64
)

REM for /f "tokens=*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation" /s') do (
REM 	if "%%~i"=="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Tomcat\6.0" set Tomcat=YES_32
REM )

REM Tomcat yes_64
if "%Tomcat%" equ "YES_64" (
	echo Tomcat 64bit >> %OSSVER_LOG%
	CALL :SET_TOMCAT_64
)

REM Tomcat yes_32
REM if "%Tomcat%" equ "YES_32" (
REM 	echo Tomcat version 16 >> %OSSVER_LOG%
REM 	CALL :SET_TOMCAT_32
REM )


REM W71D2222811 for
REM Javadata acquisition
REM echo "" > %JAVA_LOG%
echo [Java] >> %OSSVER_LOG%
for /f "tokens=*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products" /s /v DisplayName') do (

echo "%%~i" >> %JAVA_LOG%
)


REM Apache version output
REM perl "ApacheVersion.pl" %Apache_LOG% %APCHE_VER%
REM openssl version output
REM perl "OpensslVersion.pl" %SSL_LOG% %SSL_VER%
REM Java version output
perl "JREVersion.pl" %JAVA_LOG% %JRE_VER%
perl "JDKVersion.pl" %JAVA_LOG% %JDK_VER%
REM Perl version output
REM perl "perlVersion.pl" %PERL_LOG% %PERL_VER%

FOR %%I IN ("C:\OSS_TMP\JDK_ver.log") DO IF %%~zI==0 CALL :JDK_ZERO

FOR %%I IN ("C:\OSS_TMP\JRE_ver.log") DO IF NOT %%~zI==0 (
	GOTO :JRE_SET
)

SET JRE_X86=-

IF DEFINED JAVA_VERSION_X86 (
	SET JRE_X86=%JAVA_VERSION_X86%
)

ECHO [JRE version:%JRE_X86%] > "C:\OSS_TMP\JRE_ver.log"

IF DEFINED JAVA_VERSION (
	ECHO [JRE version:%JRE_X86%][JRE version:%JAVA_VERSION% ^(64-bit^)] > "C:\OSS_TMP\JRE_ver.log"
)

:JRE_SET

REM preldata acquisition
echo [Perl] >> %OSSVER_LOG%
IF EXIST "C:\Strawberry\Perl\bin\perl.exe" ( 
	echo "C:\Strawberry\Perl\bin\ EXIST" >> %OSSVER_LOG%
	perl -V | find "uname=" > %PERL_LOG%
	perl "perlVersion.pl" %PERL_LOG% %PERL_VER%
 ) else IF EXIST "C:\Perl\bin\perl.exe" ( 
	echo "C:\Perl EXIST" >> %OSSVER_LOG%
	perl -v > %PERL_LOG%
	perl "perlVersion.pl" %PERL_LOG% %PERL_VER%
 ) else IF EXIST "C:\Perl64\bin\perl.exe"  ( 
 	echo "C:\Perl64 EXIST" >> %OSSVER_LOG%
 	perl -v > %PERL_LOG%
 	perl "perlVersion.pl" %PERL_LOG% %PERL_VER%
 ) else ( 
 	echo "Perl is not installed" >> %OSSVER_LOG%
 	echo [Apache version:-] > %APCHE_VER%
 	echo [Openssl version:-] > %SSL_VER%
 	echo [JDK version:-] > %JDK_VER%
 	echo [JRE version:-] > %JRE_VER%
	echo [perl version:-] > %PERL_VER%
 ) 

REM  "initialize Flash Player"
echo [Flash] >> %OSSVER_LOG%
echo [Flash version:-] > %FLASH_VER%
REM  "Cheak Flash Player"

 for /f "tokens=*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Classes"') do (
 	if "%%~i"=="HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MacromediaFlashPaper.MacromediaFlashPaper" goto :SET_FLASH_32
 ) 


 for /f "tokens=*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}"') do (
 	if "%%~i"=="HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InprocServer32" goto :SET_FLASH_32
 ) 

ECHO "Flash is not installed"  >> %OSSVER_LOG%
:FLASH_END
 
REM else ( 
REM  echo [Flash version:-] > %FLASH_VER%
REM  )
REM REM W71D2222811 To

REM  "initialize VC++Runtime"
echo [VC Runtime] >> %OSSVER_LOG%
echo [VC Runtime version:-] > %RUNTIME_VER%

REG QUERY %RUNTIME_CHK_REGKEY% /v %RUNTIME_REGNAME% >nul 2>>&1
if NOT %ERRORLEVEL%==0 (
	echo "VC Runtime is not installed."  >> %OSSVER_LOG%
	goto :RUNTIME_END
)

REM Get all Displaynnames of registry keys under RUNTIME_VER_REGKEY.
FOR /F "tokens=*" %%I IN ('REG QUERY %RUNTIME_VER_REGKEY% /s /v %RUNTIME_DISPLAYNAME%') DO (
	echo "%%~I" >> %RUNTIME_LOG%
)

REM Get Microsoft Visual C ++ 2017 Redistributable (x86) registry key.
IF NOT EXIST %RUNTIME_LOG% (
	echo "%RUNTIME_LOG% not found."  >> %OSSVER_LOG%
	goto :RUNTIME_END
)

REM Run RUNTIMEVersion.pl.
FOR /F %%I IN ('perl %RUNTIME_PERL% %RUNTIME_LOG%') DO SET RUNTIME_REGKEY=%%I

REM Check if RUNTIME_VER_REGKEY value exists in registry key.
echo %RUNTIME_REGKEY% | find %RUNTIME_VER_REGKEY% >NUL
IF NOT %ERRORLEVEL%==0 (
	echo "Failed to get VC++Runtime registry key."  >> %OSSVER_LOG%
	goto :RUNTIME_END
)

echo "VC Runtime is installed"  >> %OSSVER_LOG%
FOR /F "TOKENS=3" %%I IN ('REG QUERY %RUNTIME_REGKEY% /v %RUNTIME_DISPLAYVER%') DO SET GET_RUNTIME_VALUE=%%I
echo [VC Runtime version:v%GET_RUNTIME_VALUE%] > %RUNTIME_VER%

:RUNTIME_END

REM CALL Function
CALL :MAKE_LOG %APCHE_VER%
CALL :MAKE_LOG %SSL_VER%
CALL :MAKE_LOG %TOMCAT_VER%
CALL :MAKE_LOG %JDK_VER%
CALL :MAKE_LOG %JRE_VER%
CALL :MAKE_LOG %PERL_VER%
CALL :MAKE_LOG %FLASH_VER%
CALL :MAKE_LOG %RUNTIME_VER%
REM pause

REM TMP delete
 rmdir /S /Q "C:\OSS_TMP" >> %OSSVER_LOG%

exit /b 0

:MAKE_LOG
IF EXIST "%1" ( 
	ECHO "%1 exist."  >> %OSSVER_LOG%
	CALL :SET_LOG %1

 ) ELSE (
	ECHO "%1 not exist." >> %OSSVER_LOG%
 ) 
exit /b

:SET_LOG 
REM initialize TMP
REM set TMP=
REM REM W71D2222811
set TMP=NULL

REM The first line acquisition of xxx_ver.log
SET /P TMP=<%1

REM W71D2222811 for
IF "%TMP%"=="NULL" ( 
	ECHO "%1 %TMP%" >> %OSSVER_LOG%
	exit /b
 ) 
REM W71D2222811 To

REM output xxx_ver.log
ECHO %TMP% >> %OSS_VER%
exit /b

:SET_TOMCAT_64
FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat\7.0\Tomcat7" /v "Version"') DO IF "%%A"=="Version" SET GET_VALUE=%%C
echo [Tomcat version:%GET_VALUE%] > %TOMCAT_VER%
exit /b

REM :SET_TOMCAT_32
REM FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Tomcat\6.0" /v "Version"') DO IF "%%A"=="Version" SET GET_VALUE=%%C
REM echo [Tomcat version:%GET_VALUE%] > %TOMCAT_VER%
REM exit /b

REM W71D2222811 for
:SET_FLASH_32
ECHO "Flash is installed"  >> %OSSVER_LOG%
FOR /F "TOKENS=1,2,*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Macromedia\FlashPlayerActiveX" /v "Version"') DO IF "%%A"=="Version" SET GET_VALUE=%%C
echo [Flash version:%GET_VALUE%] > %FLASH_VER%

goto :FLASH_END
REM exit /b

:JDK_ZERO
echo "JDK is not installed" >> %OSSVER_LOG%
echo [JDK version:-] > %JDK_VER%
exit /b

:JRE_ZERO
echo "JRE is not installed" >> %OSSVER_LOG%
echo [JRE version:-] > %JRE_VER%
exit /b

REM W71D2222811 To