From b8d6fe4533c57228b9630f4cd5d3b38b1c976b82 Mon Sep 17 00:00:00 2001 From: John Edwards Date: Sun, 5 Nov 2023 14:28:31 +0000 Subject: [PATCH] Added basic support for pre/post hooks --- README.md | 11 +++++++++++ bullseye/Dockerfile | 2 ++ bullseye/etc/entry.sh | 16 ++++++++++++++++ bullseye/etc/post.sh | 5 +++++ bullseye/etc/pre.sh | 5 +++++ 5 files changed, 39 insertions(+) create mode 100755 bullseye/etc/post.sh create mode 100755 bullseye/etc/pre.sh diff --git a/README.md b/README.md index 2d5d2cb..a4dfe1d 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,17 @@ TV_MAXRATE=0 (Max CSTV spectator bandwidth rate allowed, 0 == unl TV_DELAY=0 (CSTV broadcast delay in seconds) ``` +# Customizing this Container + +## Pre and Post Hooks + +The container includes two scripts for executing custom actions: + +* `/home/steam/cs2-dedicated/pre.sh` is executed before the CS2 server starts +* `/home/steam/cs2-dedicated/post.sh` is executed after the CS2 server stops + +When using a persient volume mounted at `/home/steam/cs2-dedicated/` you may edit these scripts to perform custom actions, such as enabling metamod. + # Credits This container leans heavily on the work of [CM2Walki](https://github.com/CM2Walki/), especially his [SteamCMD](https://github.com/CM2Walki/steamcmd) container image. GG! diff --git a/bullseye/Dockerfile b/bullseye/Dockerfile index 5716aab..759d4f8 100644 --- a/bullseye/Dockerfile +++ b/bullseye/Dockerfile @@ -18,6 +18,8 @@ ENV CFG_URL https://raw.githubusercontent.com/joedwards32/CS2/settings.tgz COPY etc/entry.sh "${HOMEDIR}/entry.sh" COPY etc/server.cfg "/etc/server.cfg" +COPY etc/pre.sh "/etc/pre.sh" +COPY etc/post.sh "/etc/post.sh" RUN set -x \ # Install, update & upgrade packages diff --git a/bullseye/etc/entry.sh b/bullseye/etc/entry.sh index cd2c14f..235c216 100644 --- a/bullseye/etc/entry.sh +++ b/bullseye/etc/entry.sh @@ -1,4 +1,6 @@ #!/bin/bash + +# Create App Dir mkdir -p "${STEAMAPPDIR}" || true # Download Updates @@ -27,6 +29,14 @@ sed -i -e "s/{{SERVER_HOSTNAME}}/${CS2_SERVERNAME}/g" \ -e "s/{{TV_DELAY}}/${TV_DELAY}/g" \ "${STEAMAPPDIR}"/game/csgo/cfg/server.cfg +# Install hooks +if [[ ! -f "${STEAMAPPDIR}/pre.sh" ]] ; then + cp /etc/pre.sh "${STEAMAPPDIR}/pre.sh" +fi +if [[ ! -f "${STEAMAPPDIR}/post.sh" ]] ; then + cp /etc/post.sh "${STEAMAPPDIR}/post.sh" +fi + # Rewrite Config Files if [[ ! -z $CS2_BOT_DIFFICULTY ]] ; then @@ -42,6 +52,9 @@ fi # Switch to server directory cd "${STEAMAPPDIR}/game/bin/linuxsteamrt64" +# Pre Hook +bash "${STEAMAPPDIR}/pre.sh" + # Construct server arguments if [[ -z $CS2_GAMEALIAS ]]; then @@ -70,3 +83,6 @@ eval "./cs2" -dedicated \ +rcon_password "${CS2_RCONPW}" \ +sv_password "${CS2_PW}" \ "${CS2_ADDITIONAL_ARGS}" + +# Post Hook +bash "${STEAMAPPDIR}/post.sh" diff --git a/bullseye/etc/post.sh b/bullseye/etc/post.sh new file mode 100755 index 0000000..9256adf --- /dev/null +++ b/bullseye/etc/post.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# POST HOOK +# Make your customisation here +echo "post-hook: noop" diff --git a/bullseye/etc/pre.sh b/bullseye/etc/pre.sh new file mode 100755 index 0000000..eb0fb9a --- /dev/null +++ b/bullseye/etc/pre.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# PRE HOOK +# Make your customisation here +echo "pre-hook: noop"