DarkflameServer/docker/start_server.sh

49 lines
1.7 KiB
Bash
Raw Permalink Normal View History

2021-12-07 13:50:05 +00:00
#!/bin/bash
2021-12-07 15:29:26 +00:00
function symlink_client_files() {
echo "Creating symlinks for client files"
2021-12-07 15:29:26 +00:00
ln -s /client/client/res/macros/ /app/res/macros
ln -s /client/client/res/BrickModels/ /app/res/BrickModels
ln -s /client/client/res/chatplus_en_us.txt /app/res/chatplus_en_us.txt
ln -s /client/client/res/names/ /app/res/names
ln -s /client/client/res/CDServer.sqlite /app/res/CDServer.sqlite
2021-12-07 15:29:26 +00:00
ln -s /client/client/locale/locale.xml /app/locale/locale.xml
# need to iterate over entries in maps due to maps already being a directory with navmeshes/ in it
(
cd /client/client/res/maps
readarray -d '' entries < <(printf '%s\0' * | sort -zV)
for entry in "${entries[@]}"; do
ln -s /client/client/res/maps/$entry /app/res/maps/
done
)
2021-12-07 15:29:26 +00:00
}
function symlink_config_files() {
echo "Creating symlinks for config files"
rm /app/*.ini
ln -s /shared_configs/configs/authconfig.ini /app/authconfig.ini
ln -s /shared_configs/configs/chatconfig.ini /app/chatconfig.ini
ln -s /shared_configs/configs/masterconfig.ini /app/masterconfig.ini
ln -s /shared_configs/configs/worldconfig.ini /app/worldconfig.ini
2021-12-07 15:29:26 +00:00
}
# check to make sure the setup has completed
while [ ! -f "/client/extracted" ] || [ ! -f "/client/migrated" ]; do
echo "Client setup not finished. Waiting for setup container to complete..."
sleep 5
done
2021-12-08 08:54:44 +00:00
if [[ ! -f "/app/initialized" ]]; then
# setup symlinks for volume files
symlink_client_files
symlink_config_files
# do not run symlinks more than once
touch /app/initialized
else
echo "Server already initialized"
fi
2021-12-07 15:29:26 +00:00
# start the server
echo "Starting MasterServer"
2021-12-07 15:29:26 +00:00
./MasterServer
tail -f /dev/null