55 lines
1.6 KiB
Bash
55 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
CONF_DIR="${CONF_DIR:-/azerothcore/env/dist/etc}"
|
|
LOGS_DIR="${LOGS_DIR:-/azerothcore/env/dist/logs}"
|
|
|
|
if ! touch "$CONF_DIR/.write-test" || ! touch "$LOGS_DIR/.write-test"; then
|
|
cat <<EOF
|
|
===== WARNING =====
|
|
The current user doesn't have write permissions for
|
|
the configuration dir ($CONF_DIR) or logs dir ($LOGS_DIR).
|
|
It's likely that services will fail due to this.
|
|
|
|
This is usually caused by cloning the repository as root,
|
|
so the files are owned by root (uid 0).
|
|
|
|
To resolve this, you can set the ownership of the
|
|
configuration directory with the command on the host machine.
|
|
Note that if the files are owned as root, the ownership must
|
|
be changed as root (hence sudo).
|
|
|
|
$ sudo chown -R $(id -u):$(id -g) /path/to$CONF_DIR /path/to$LOGS_DIR
|
|
|
|
Alternatively, you can set the DOCKER_USER environment
|
|
variable (on the host machine) to "root", though this
|
|
isn't recommended.
|
|
|
|
$ DOCKER_USER=root docker-compose up -d
|
|
====================
|
|
EOF
|
|
fi
|
|
|
|
[[ -f "$CONF_DIR/.write-test" ]] && rm -f "$CONF_DIR/.write-test"
|
|
[[ -f "$LOGS_DIR/.write-test" ]] && rm -f "$LOGS_DIR/.write-test"
|
|
|
|
# Copy all default config files to env/dist/etc if they don't already exist
|
|
# -r == recursive
|
|
# -n == no clobber (don't overwrite)
|
|
# -v == be verbose
|
|
cp -rnv /azerothcore/env/ref/etc/* "$CONF_DIR"
|
|
|
|
CONF="$CONF_DIR/$ACORE_COMPONENT.conf"
|
|
CONF_DIST="$CONF_DIR/$ACORE_COMPONENT.conf.dist"
|
|
|
|
# Copy the "dist" file to the "conf" if the conf doesn't already exist
|
|
if [[ -f "$CONF_DIST" ]]; then
|
|
cp -vn "$CONF_DIST" "$CONF"
|
|
else
|
|
touch "$CONF"
|
|
fi
|
|
|
|
echo "Starting $ACORE_COMPONENT..."
|
|
|
|
exec "$@"
|