Files
design-patterns/run-all.bat

81 lines
2.7 KiB
Batchfile

@echo off
setlocal EnableDelayedExpansion
set BASE=%~dp0
set JAVAC="C:\Program Files\Eclipse Adoptium\jdk-17.0.7.7-hotspot\bin\javac.exe"
set JAVA="C:\Program Files\Eclipse Adoptium\jdk-17.0.7.7-hotspot\bin\java.exe"
set LOG=%BASE%output.log
echo Design Patterns - Compile and Run > "%LOG%"
echo Java: 17.0.7 (Eclipse Temurin) >> "%LOG%"
echo ================================ >> "%LOG%"
:: Create output dirs
for %%P in (adapter bridge composite decorator facade flyweight proxy) do (
if not exist "%BASE%out\%%P" mkdir "%BASE%out\%%P"
)
:: Function-like subroutine to compile a package
:: Usage: CALL :compile_pkg <package> <relative_src_dir>
:: --- ADAPTER ---
echo. >> "%LOG%"
echo === ADAPTER === >> "%LOG%"
set FILES=
for %%f in ("%BASE%02-structural\adapter\*.java") do set FILES=!FILES! "%%f"
%JAVAC% -d "%BASE%out\adapter" !FILES! >> "%LOG%" 2>&1
if not errorlevel 1 (%JAVA% -cp "%BASE%out\adapter" adapter.Main >> "%LOG%" 2>&1)
:: --- BRIDGE ---
echo. >> "%LOG%"
echo === BRIDGE === >> "%LOG%"
set FILES=
for %%f in ("%BASE%02-structural\bridge\*.java") do set FILES=!FILES! "%%f"
%JAVAC% -d "%BASE%out\bridge" !FILES! >> "%LOG%" 2>&1
if not errorlevel 1 (%JAVA% -cp "%BASE%out\bridge" bridge.Main >> "%LOG%" 2>&1)
:: --- COMPOSITE ---
echo. >> "%LOG%"
echo === COMPOSITE === >> "%LOG%"
set FILES=
for %%f in ("%BASE%02-structural\composite\*.java") do set FILES=!FILES! "%%f"
%JAVAC% -d "%BASE%out\composite" !FILES! >> "%LOG%" 2>&1
if not errorlevel 1 (%JAVA% -cp "%BASE%out\composite" composite.Main >> "%LOG%" 2>&1)
:: --- DECORATOR ---
echo. >> "%LOG%"
echo === DECORATOR === >> "%LOG%"
set FILES=
for %%f in ("%BASE%02-structural\decorator\*.java") do set FILES=!FILES! "%%f"
%JAVAC% -d "%BASE%out\decorator" !FILES! >> "%LOG%" 2>&1
if not errorlevel 1 (%JAVA% -cp "%BASE%out\decorator" decorator.Main >> "%LOG%" 2>&1)
:: --- FACADE ---
echo. >> "%LOG%"
echo === FACADE === >> "%LOG%"
set FILES=
for %%f in ("%BASE%02-structural\facade\*.java") do set FILES=!FILES! "%%f"
%JAVAC% -d "%BASE%out\facade" !FILES! >> "%LOG%" 2>&1
if not errorlevel 1 (%JAVA% -cp "%BASE%out\facade" facade.Main >> "%LOG%" 2>&1)
:: --- FLYWEIGHT ---
echo. >> "%LOG%"
echo === FLYWEIGHT === >> "%LOG%"
set FILES=
for %%f in ("%BASE%02-structural\flyweight\*.java") do set FILES=!FILES! "%%f"
%JAVAC% -d "%BASE%out\flyweight" !FILES! >> "%LOG%" 2>&1
if not errorlevel 1 (%JAVA% -cp "%BASE%out\flyweight" flyweight.Main >> "%LOG%" 2>&1)
:: --- PROXY ---
echo. >> "%LOG%"
echo === PROXY === >> "%LOG%"
set FILES=
for %%f in ("%BASE%02-structural\proxy\*.java") do set FILES=!FILES! "%%f"
%JAVAC% -d "%BASE%out\proxy" !FILES! >> "%LOG%" 2>&1
if not errorlevel 1 (%JAVA% -cp "%BASE%out\proxy" proxy.Main >> "%LOG%" 2>&1)
echo. >> "%LOG%"
echo [DONE] >> "%LOG%"
notepad "%LOG%"