| @echo off |
| |
| rem Install Java Development Kit (JDK) |
| echo Installing JDK... |
| if not exist "%ProgramFiles%\Java\jdk-19\" ( |
| mkdir C:\temp |
| cd C:\temp |
| powershell Invoke-WebRequest -Uri "https://download.oracle.com/java/19/archive/jdk-19.0.2_windows-x64_bin.exe" -OutFile jdk-19.0.2_windows-x64_bin.exe |
| start /wait jdk-19.0.2_windows-x64_bin.exe /s ADDLOCAL="ToolsFeature" /s |
| del /f jdk-19.0.2_windows-x64_bin.exe |
| setx /M JAVA_HOME "C:\Program Files\Java\jdk-19.0.2" |
| setx /M PATH "%PATH%;%JAVA_HOME%\bin" |
| ) else ( |
| echo JDK already installed. |
| ) |
| |
| rem Install Apache Maven |
| echo Installing Apache Maven... |
| if not exist "%ProgramFiles%\Apache Maven\apache-maven-3.9.0\" ( |
| mkdir C:\temp |
| cd C:\temp |
| powershell Invoke-WebRequest -Uri "https://dlcdn.apache.org/maven/maven-3/3.9.0/binaries/apache-maven-3.9.0-bin.zip" -OutFile apache-maven-3.9.0-bin.zip |
| powershell Expand-Archive apache-maven-3.9.0-bin.zip -DestinationPath \"%ProgramFiles%\Apache Maven\" |
| del /f apache-maven-3.9.0-bin.zip |
| setx /M PATH "%PATH%;%ProgramFiles%\Apache Maven\apache-maven-3.9.0-bin\bin" |
| ) else ( |
| echo Apache Maven already installed. |
| ) |
| |
| rem Download and install ANTLR |
| echo Downloading ANTLR... |
| if not exist "%ProgramFiles%\ANTLR" ( |
| mkdir "%ProgramFiles%\ANTLR" |
| cd "%ProgramFiles%\ANTLR" |
| powershell Invoke-WebRequest -Uri "https://www.antlr.org/download/antlr-4.11.1-complete.jar" -OutFile "antlr-4.11.1-complete.jar" |
| setx /M PATH "%PATH%;%ProgramFiles%\ANTLR\" |
| setx /M CLASSPATH ".;%ProgramFiles%\ANTLR\antlr-4.11.1-complete.jar;%CLASSPATH%" |
| ) |
| |
| echo ANTLR installation complete. |
| |
| rem Checking Compatibility for Golang |
| echo Checking if current version of Golang >= Go 1.18..... |
| set "minimum_version=1.18" |
| set "installed_version=" |
| set "download_url=https://go.dev/dl/go1.19.7.windows-amd64.msi" |
| |
| :: Check if Go is installed and get its version |
| set "go_path=" |
| for %%i in (go.exe) do set "go_path=%%~$PATH:i" |
| if defined go_path ( |
| for /f "tokens=3" %%v in ('go version 2^>^&1') do set "installed_version=%%v" |
| ) |
| |
| :: If Go is not installed or the version is less than 1.18, prompt the user to install a new version |
| if not defined installed_version ( |
| echo installing Go |
| :: Download and install the latest version of Go |
| powershell -Command "& {Invoke-WebRequest -Uri "%download_url%" -OutFile '%TEMP%\go-minimum-version.msi'}" |
| start /wait msiexec /i "%TEMP%\go-minimum-version.msi" |
| for /f "tokens=3" %%v in ('go version 2^>^&1') do set "installed_version=%%v" |
| ) else if "%installed_version%" lss "%minimum_version%" ( |
| set /p "install_new_version=Go version %minimum_version% or higher is required. Would you like to install the latest version? (y/n)" |
| if /i "%install_new_version%"=="y" ( |
| :: Download and install the latest version of Go |
| powershell -Command "& {Invoke-WebRequest -Uri "%download_url%" -OutFile '%TEMP%\go-minimum-version.msi'}" |
| start /wait msiexec /i "%TEMP%\go-minimum_version.msi" |
| for /f "tokens=3" %%v in ('go version 2^>^&1') do set "installed_version=%%v" |
| ) else ( |
| echo Please update Go version before installing driver. |
| goto skip |
| ) |
| ) |
| |
| rem Installing Driver |
| echo --^> Generating ANTLR parser ^& lexer ^for Golang% |
| java org.antlr.v4.Tool -Dlanguage=Go -visitor Age.g4 -o parser/ |
| echo --^> Installing Driver |
| go get -u ./... |
| goto end |
| :skip |
| echo Aborted |
| :end |
| pause |
| endlocal |