From 80adb60aa83c1363a70c9c0ed71c83809bccf63f Mon Sep 17 00:00:00 2001 From: Daniel Ceregatti Date: Tue, 20 Feb 2024 14:28:59 -0800 Subject: [PATCH] As of today, we have a release version! I can't believe it! We no longer need to lower case the files. Switch to the release server id. Move rcon from the web container to the server container. Handle .c files on a per-map basis. Update per-map .c files. --- files/bin/dz-common | 13 ++++++------- .../1891132304/{init.c => init.c.empty.deerisle} | 0 files/mods/2981609048/{init.c => init.c.chernarus} | 0 server/Dockerfile | 3 +++ server/bin/dz | 4 ++-- web/Dockerfile | 7 ------- web/bin/dz | 8 ++++---- 7 files changed, 15 insertions(+), 20 deletions(-) rename files/mods/1891132304/{init.c => init.c.empty.deerisle} (100%) rename files/mods/2981609048/{init.c => init.c.chernarus} (100%) diff --git a/files/bin/dz-common b/files/bin/dz-common index 2d998eb..c75ca5c 100755 --- a/files/bin/dz-common +++ b/files/bin/dz-common @@ -21,13 +21,12 @@ blue="\e[34m" magenta="\e[35m" cyan="\e[36m" -# DayZ release server Steam app ID. USE ONE OR THE OTHER!! -# Presumably once the Linux server is released, the binaries will come from this ID. -# But more importantly, if we have a release-compatible binary, the base files must be installed from this id, -# even if the server binary and accompanying shared object don't come from it. -#release_server_appid=223350 -# Without a release binary, we must use the experimental server app id for everything. -release_server_appid=1042420 +# DayZ release server Steam app ID. +# Now that the Linux server is released, the binaries will come from this ID. +release_server_appid=223350 + +# Leaving the experimental server appid here to allow for the use of the experimental server. +#release_server_appid=1042420 # DayZ release client SteamID. This is for mods, as only the release client has them. release_client_appid=221100 diff --git a/files/mods/1891132304/init.c b/files/mods/1891132304/init.c.empty.deerisle similarity index 100% rename from files/mods/1891132304/init.c rename to files/mods/1891132304/init.c.empty.deerisle diff --git a/files/mods/2981609048/init.c b/files/mods/2981609048/init.c.chernarus similarity index 100% rename from files/mods/2981609048/init.c rename to files/mods/2981609048/init.c.chernarus diff --git a/server/Dockerfile b/server/Dockerfile index e5a035c..8512593 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -21,10 +21,13 @@ RUN apt-get update && apt-get -y upgrade && apt-get -y install --no-install-reco locales \ nano \ patch \ + python3 \ procps \ wget \ xmlstarlet +RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 + # Set the locale RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen ENV LANG en_US.UTF-8 diff --git a/server/bin/dz b/server/bin/dz index 8a78875..54054cb 100755 --- a/server/bin/dz +++ b/server/bin/dz @@ -231,7 +231,7 @@ mergexml(){ # These are merged directly into the upstream file, but are C for var in "INIT" do - if [ -f "${WORKSHOP_DIR}/${ID}/${var,,}.c" ] + if [ -f "${WORKSHOP_DIR}/${ID}/${var,,}.c.${MAP}" ] then if [[ ${FOUND} = 0 ]] then @@ -241,7 +241,7 @@ mergexml(){ FOUND=1 fi echo "Patch '${WORKSHOP_DIR}/${ID}/${var,,}.c(.diff)' -> '${MPMISSIONS}/${MAP}/${var,,}.c'" - patch -s -p0 ${MPMISSIONS}/${MAP}/${var,,}.c < ${WORKSHOP_DIR}/${ID}/${var,,}.c || ( + patch -s -p0 ${MPMISSIONS}/${MAP}/${var,,}.c.${MAP} < ${WORKSHOP_DIR}/${ID}/${var,,}.c || ( echo "Patch failed!" exit 1 ) diff --git a/web/Dockerfile b/web/Dockerfile index 6340d51..84f1219 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -22,15 +22,11 @@ RUN apt-get update && apt-get -y upgrade && apt-get -y install --no-install-reco locales \ nano \ procps \ - python3-pip \ wget \ rename \ steamcmd \ xmlstarlet -RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 -RUN update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 - # Set the locale RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen ENV LANG en_US.UTF-8 @@ -57,9 +53,6 @@ RUN curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash ENV NODE_PATH $NVM_DIR/versions/node/v$NODE_VERSION/lib/node_modules ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH -# Add py3rcon -RUN cd /usr/local && git clone https://github.com/indepth666/py3rcon.git - # Setup a non-privileged user ARG USER_ID diff --git a/web/bin/dz b/web/bin/dz index 4a39220..587dce1 100755 --- a/web/bin/dz +++ b/web/bin/dz @@ -121,8 +121,6 @@ add(){ # Get the name of the newly added mod MODNAME=$(get_mod_name ${1}) symlink 1 ${1} "${MODNAME}" - # Lower case all the files in mod directories. - find "${WORKSHOP_DIR}/${1}" -depth -exec rename -f 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \; echo -e "Mod id ${1} - ${green}${MODNAME}${default} - added" xml ${ID} } @@ -134,11 +132,15 @@ remove(){ MODNAME=$(get_mod_name ${1}) echo "Removing directory ${WORKSHOP_DIR}/${1}" rm -rf "${WORKSHOP_DIR}/${1}" + else + echo "Directory ${WORKSHOP_DIR}/${1} doesn't exist?" fi if [ -L "${SERVER_FILES}/@${MODNAME}" ] then echo "Removing symlink ${SERVER_FILES}/@${MODNAME}" rm -f "${SERVER_FILES}/@${MODNAME}" + else + echo "Symlink ${SERVER_FILES}/@${MODNAME} doesn't exist?" fi echo -e "Mod id ${1} - ${red}${MODNAME}${default} - removed" } @@ -245,8 +247,6 @@ modupdate(){ get_mods ${STEAMCMD} +force_install_dir ${SERVER_FILES} +login "${steamlogin}" ${workshoplist} +quit # Updated files come in with mixed cases. Fix that. - echo -ne "\nFixing file names..." - find "${WORKSHOP_DIR}" -depth -exec rename -f 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \; echo "done" echo }