Skip to content

Commit

Permalink
Updated windows batch scripts to be more user friendly and catch some…
Browse files Browse the repository at this point in the history
… common errors, added separate script for pulling latest build + running server
  • Loading branch information
b5635 committed Nov 17, 2024
1 parent a8b8cef commit 4415cc4
Show file tree
Hide file tree
Showing 4 changed files with 180 additions and 2 deletions.
111 changes: 111 additions & 0 deletions win_run_latest_server.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
@echo off

git --version > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Git is not installed. Please install Git so it can pull the latest build then compile it to run the server.
pause
exit /b 1
)

IF NOT EXIST server\docker-compose.yml (
echo server\docker-compose.yml does not exist. Copy server/docker-compose-template.yml to server/docker-compose.yml and configure it as you like, then run the server again.
pause
exit /b 1
)

docker --version > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Docker is not installed. Please install Docker to run the server.
pause
exit /b 1
)

docker info > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Docker error encountered or the Docker service isn't running! Please check and try again.
pause
exit /b 1
)

git pull

@echo off
echo.
echo Checking to see if there is a previous module. If prompted, type 'Y' to delete the current module and module folder.
echo If you are canceling, you can close the window and exit. nasher will not continue if there is a module file and folder.
echo It will automatically continue if you do not have module built (clean slate)
echo.
echo WARNING: Continuing will rebuild the module from source, deleting all unsaved changes! Commit or stash your changes, or exit out.
@echo on

del .build\modules /S
rd .build\modules

md .build

rmdir /s /q .build\override
robocopy override .build\override

rem Fetch a timestamp and commit hash from git, and append it to mod_desc.txt
rem This is more painful than it probably needed to be
FOR /F "tokens=* USEBACKQ" %%g IN (`git log -1 --format^=%%cd --date^=format:"%%d %%b %%y"`) do (SET "timestamp=%%g")
FOR /F "tokens=* USEBACKQ" %%g IN (`git rev-parse HEAD`) do (SET "hash=%%g")
set "hash=%hash:~,6%"


Setlocal EnableDelayedExpansion
set LF=^


rem THE TWO EMPTY LINES ABOVE ARE REQUIRED!
rem DO NOT REMOVE THE WHITESPACE IN THE NAME OF MAKING THE MODULE DESCRIPTION GET WRITTEN PROPERLY
set content=
for /f "delims=" %%x in ('type mod_desc.txt') do set "content=!content!%%x!LF!"
set "content=!content!Last Updated: %timestamp% (%hash%)"

endlocal

"%CD%/tools/win/nasher/nasher.exe" install --verbose --erfUtil:"%CD%/tools/win/neverwinter64/nwn_erf.exe" --gffUtil:"%CD%/tools/win/neverwinter64/nwn_gff.exe" --tlkUtil:"%CD%/tools/win/neverwinter64/nwn_tlk.exe" --nssCompiler:"%CD%/tools/win/nwnsc/nwnsc.exe" --installDir:"%CD%/.build" --nssFlags:"-oe -i ""%CD%/nwn-base-scripts""" --no --modDescription "!content!"

del /f server\config\common.env
del /f server\modules\TFN.mod
del /f server\database\spawns.sqlite3
del /f server\database\treasures.sqlite3
del /f server\database\randspellbooks.sqlite3
del /f server\database\prettify.sqlite3
del /f server\database\tmapsolutions.sqlite3
del /f server\database\areadistances.sqlite3
del /f server\settings.tml
rmdir /s /q server\override
md server\modules
md server\database
md server\config
copy .build\modules\TFN.mod server\modules\TFN.mod
copy config\common.env server\config\common.env
copy settings.tml server\settings.tml

:: Delete existing databases, because sqlite will attempt to load it into an existing database instead of overwriting
del /f server\database\spawns.sqlite3
del /f server\database\treasures.sqlite3
del /f server\database\randspellbooks.sqlite3
del /f server\database\prettify.sqlite3
del /f server\database\tmapsolutions.sqlite3
del /f server\database\areadistances.sqlite3

"%CD%/tools/win/sqlite/sqlite3.exe" server/database/treasures.sqlite3 < seeded_database/treasures.txt
"%CD%/tools/win/sqlite/sqlite3.exe" server/database/tmapsolutions.sqlite3 < seeded_database/tmapsolutions.txt
"%CD%/tools/win/sqlite/sqlite3.exe" server/database/randspellbooks.sqlite3 < seeded_database/randspellbooks.txt
"%CD%/tools/win/sqlite/sqlite3.exe" server/database/prettify.sqlite3 < seeded_database/prettify.txt
"%CD%/tools/win/sqlite/sqlite3.exe" server/database/spawns.sqlite3 < seeded_database/spawns.txt
"%CD%/tools/win/sqlite/sqlite3.exe" server/database/areadistances.sqlite3 < seeded_database/areadistances.txt

robocopy override server\override

copy server\env\env.2da server\override\env.2da
copy server\env\env_dm.2da server\override\env_dm.2da

cd server
docker-compose -f docker-compose.yml down
docker-compose -f docker-compose.yml up --no-recreate -d

PAUSE
22 changes: 20 additions & 2 deletions win_run_server.bat
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
git pull

@echo off
IF NOT EXIST server\docker-compose.yml (
echo server\docker-compose.yml does not exist. Copy server/docker-compose-template.yml to server/docker-compose.yml and configure it as you like, then run the server again.
pause
exit /b 1
)

docker --version > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Docker is not installed. Please install Docker to run the server.
pause
exit /b 1
)

docker info > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Docker error encountered or the Docker service isn't running! Please check and try again.
pause
exit /b 1
)

echo.
echo Checking to see if there is a previous module. If prompted, type 'Y' to delete the current module and module folder.
echo If you are canceling, you can close the window and exit. nasher will not continue if there is a module file and folder.
Expand Down
21 changes: 21 additions & 0 deletions win_run_server_dev.bat
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
@echo off
IF NOT EXIST .build\modules\TFN.mod (
echo .build\modules\TFN.mod does not exist. Please run win_nasher_install.bat first to install the module
pause
exit /b 1
)

docker --version > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Docker is not installed. Please install Docker to run the server.
pause
exit /b 1
)

docker info > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Docker error encountered or the Docker service isn't running! Please check and try again.
pause
exit /b 1
)

cd .build

docker-compose -f docker-compose-dev.yml down
Expand Down
28 changes: 28 additions & 0 deletions win_run_server_dev_seed.bat
Original file line number Diff line number Diff line change
@@ -1,4 +1,32 @@
@echo off

IF NOT EXIST .build\modules\TFN.mod (
echo .build\modules\TFN.mod does not exist. Please run win_nasher_install.bat first to install the module
pause
exit /b 1
)

python --version > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Python is not installed. Please install Python to continue seeding the server.
pause
exit /b 1
)

docker --version > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Docker is not installed. Please install Docker to run the server.
pause
exit /b 1
)

docker info > nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
echo Docker error encountered or the Docker service isn't running! Please check and try again.
pause
exit /b 1
)

setlocal

:: Capture start time
Expand Down

0 comments on commit 4415cc4

Please sign in to comment.