aboutsummaryrefslogtreecommitdiff
path: root/entrypoint.bash
diff options
context:
space:
mode:
authorAlex Pooley (@zuedev) <zuedev@gmail.com>2026-04-17 20:20:01 +0100
committerAlex Pooley (@zuedev) <zuedev@gmail.com>2026-04-17 20:20:01 +0100
commit74799435dca411e9bb5aa59f4b8bdc6dd1384ad4 (patch)
treed9fc2bd8b28d6b15ae9e4860674b4b85dac9fe9b /entrypoint.bash
parent1ad5d3ac8ca5ada314d53a611c8b4d7badf978df (diff)
downloadNuclearOptionDedicatedServerDocker-74799435dca411e9bb5aa59f4b8bdc6dd1384ad4.tar
NuclearOptionDedicatedServerDocker-74799435dca411e9bb5aa59f4b8bdc6dd1384ad4.tar.gz
NuclearOptionDedicatedServerDocker-74799435dca411e9bb5aa59f4b8bdc6dd1384ad4.tar.bz2
NuclearOptionDedicatedServerDocker-74799435dca411e9bb5aa59f4b8bdc6dd1384ad4.tar.xz
NuclearOptionDedicatedServerDocker-74799435dca411e9bb5aa59f4b8bdc6dd1384ad4.zip
add other config fields to env setting (with their types)
Diffstat (limited to 'entrypoint.bash')
-rw-r--r--entrypoint.bash28
1 files changed, 23 insertions, 5 deletions
diff --git a/entrypoint.bash b/entrypoint.bash
index c40fcd0..fbb0efc 100644
--- a/entrypoint.bash
+++ b/entrypoint.bash
@@ -20,19 +20,37 @@ if [ -d "/overlay" ]; then
fi
# handle configuration file changes via environment variables
+# pattern is: even index is the field name, odd index is the type (String, Boolean, Integer)
CONFIG_FIELDS=(
+ "MissionDirectory"
+ "String"
+ "ModdedServer"
+ "Boolean"
+ "Hidden"
+ "Boolean"
"ServerName"
- "MaxPlayers"
+ "String"
"Password"
+ "String"
+ "MaxPlayers"
+ "Integer"
+ "DisableErrorKick"
+ "Boolean"
+ "NoPlayerStopTime"
+ "Integer"
+ "PostMissionDelay"
+ "Integer"
+ "RotationType"
+ "Integer"
)
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"
+ ENV_VAR_NAME="CONFIG_${FIELD^^}"
+ if [ -n "${!ENV_VAR_NAME}" ]; then
+ echo "Setting $FIELD to ${!ENV_VAR_NAME} in $CONFIG_PATH"
+ jq --arg value "${!ENV_VAR_NAME}" --arg field "$FIELD" '(.[$field] // empty) |= ($value | if type == "boolean" then (if $value == "true" then true else false end) elif type == "number" then ($value | tonumber) else $value end)' "$CONFIG_PATH" > "$CONFIG_PATH.tmp" && mv "$CONFIG_PATH.tmp" "$CONFIG_PATH"
fi
done