prophunt-garrysmod/gmod/initConfig.sh

52 lines
1.4 KiB
Bash
Raw Permalink Normal View History

2019-07-21 23:04:00 +02:00
#!/bin/bash
if [ "${DEBUGGING}" = "true" ]; then
set -o xtrace
fi
set -o errexit
set -o nounset
set -o pipefail
2019-10-15 14:32:24 +02:00
CFG_PATH="${SERVER_PATH}/garrysmod/cfg/gmodserver.cfg"
2019-07-21 23:04:00 +02:00
function configReplace() {
local source="$1"
local target="$2"
count=$(grep -Ece "^\s*${source}\s" "${CFG_PATH}")
echo "[initConfig.sh]Request for replacing \"$source\" to \"$target\", source is found $count times"
sed -E -i "/^\s${source}\s.*/d" "${CFG_PATH}"
local file_ends_on_newline=$([ "$(tail -c1 "${CFG_PATH}" | wc -l)" -eq 1 ] && echo true || echo false)
if ! $file_ends_on_newline; then
echo "" >> "${CFG_PATH}"
fi
echo "$source \"$target\"" >> "${CFG_PATH}"
2019-07-21 23:04:00 +02:00
}
#create default server.config
# not empty: grep -q '[^[:space:]]' < 'server.cfg' && echo "not empty"
2019-10-15 14:32:24 +02:00
if [ ! -e "${CFG_PATH}" ] || [ "0" = "$(grep -oc '[^[:space:]]' "${CFG_PATH}")" ]; then
2019-07-21 23:04:00 +02:00
mkdir -p "${SERVER_PATH}/garrysmod/cfg" || true
2019-10-15 14:32:24 +02:00
cp -f "/home/server.cfg.default" "${CFG_PATH}"
chown "$USER_ID:$GROUP_ID" "${CFG_PATH}"
chmod u+rw "${CFG_PATH}"
2019-07-21 23:04:00 +02:00
fi
2019-10-15 14:32:24 +02:00
# set hostname & password, working if only one entry is in
2019-07-21 23:04:00 +02:00
if [ -n "${SERVER_NAME}" ]; then
configReplace "hostname" "$SERVER_NAME"
fi
if [ -n "${SERVER_PASSWORD}" ]; then
configReplace "sv_password" "$SERVER_PASSWORD"
fi
2019-10-15 14:56:24 +02:00
if [ -n "${SERVER_RCON_PASSWORD}" ]; then
configReplace "rcon_password" "$SERVER_RCON_PASSWORD"
fi
2019-07-21 23:04:00 +02:00
if [ -n "${SERVER_VOICE_ENABLE}" ]; then
configReplace "sv_voiceenable" "$SERVER_VOICE_ENABLE"
fi