diff options
Diffstat (limited to 'entrypoint.bash')
| -rw-r--r-- | entrypoint.bash | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/entrypoint.bash b/entrypoint.bash new file mode 100644 index 0000000..3616629 --- /dev/null +++ b/entrypoint.bash @@ -0,0 +1,34 @@ +#!/bin/bash + +# do we have a username and password? +if [ "$STEAM_USERNAME" = "anonymous" ]; then + echo "Using anonymous login. No password needed." + STEAM_PASSWORD="" +elif [ -z "$STEAM_USERNAME" ] || [ -z "$STEAM_PASSWORD" ]; then + echo "Please set STEAM_USERNAME and STEAM_PASSWORD environment variables." + echo "If you want to use anonymous login, set STEAM_USERNAME to 'anonymous' and leave STEAM_PASSWORD empty." + exit 1 +fi + +# install game server via steamcmd +steamcmd +login "$STEAM_USERNAME" "$STEAM_PASSWORD" +force_install_dir /app +app_update 3930080 validate +quit + +# handle configuration file changes +CONFIG_FIELDS=( + "ServerName" + "MaxPlayers" + "Password" +) + +CONFIG_PATH="/app/DedicatedServerConfig.json" + +for FIELD in "${CONFIG_FIELDS[@]}"; do + ENV_VAR="CONFIG_${FIELD^^}" + if [ -n "${!ENV_VAR}" ]; then + echo "Setting $FIELD to ${!ENV_VAR} in config file." + jq --arg value "${!ENV_VAR}" ".${FIELD} = \$value" "$CONFIG_PATH" > tmp.$$.json && mv tmp.$$.json "$CONFIG_PATH" + fi +done + +# run the server +sh /app/RunServer.sh
\ No newline at end of file |
