Add support for server mods in the server command line.

This commit is contained in:
Daniel Ceregatti 2025-07-30 13:55:50 -06:00
parent 386cd4878c
commit d28f698728

View file

@ -27,6 +27,7 @@ then
fi fi
mod_command_line="" mod_command_line=""
server_command_line=""
# Functions # Functions
@ -111,7 +112,7 @@ report() {
then then
exit 0 exit 0
fi fi
rm -f /tmp/mod_command_line /tmp/parameters rm -f /tmp/mod_command_line /tmp/server_command_line /tmp/parameters
echo echo
echo -e "${yellow}========================================== error.log ==========================================" echo -e "${yellow}========================================== error.log =========================================="
find "${SERVER_PROFILE}" -name error.log -exec head {} \; -exec tail -n 30 {} \; -exec rm -f {} \; find "${SERVER_PROFILE}" -name error.log -exec head {} \; -exec tail -n 30 {} \; -exec rm -f {} \;
@ -412,6 +413,7 @@ start(){
# Save the mod command line and parameters that were used to start the server, so status reflects the running server's # Save the mod command line and parameters that were used to start the server, so status reflects the running server's
# actual status with those # actual status with those
echo ${mod_command_line} > /tmp/mod_command_line echo ${mod_command_line} > /tmp/mod_command_line
echo ${server_command_line} > /tmp/server_command_line
echo ${parameters} > /tmp/parameters echo ${parameters} > /tmp/parameters
# Add the steam port from the environment # Add the steam port from the environment
cp -a "${SERVER_CFG_SAVE}" "${SERVER_CFG_DST}" cp -a "${SERVER_CFG_SAVE}" "${SERVER_CFG_DST}"
@ -419,7 +421,7 @@ start(){
then then
sed -e "s,^steamQueryPort.*,steamQueryPort = ${STEAM_PORT};," -i "${SERVER_CFG_DST}" sed -e "s,^steamQueryPort.*,steamQueryPort = ${STEAM_PORT};," -i "${SERVER_CFG_DST}"
fi fi
./DayZServer "${mod_command_line}" ${parameters} ./DayZServer "${mod_command_line}" "${server_command_line}" ${parameters}
EXIT_CODE=$? EXIT_CODE=$?
printf "\n[ ${yellow}DayZ${default} ] Server exited. Exit code: ${EXIT_CODE}\n" printf "\n[ ${yellow}DayZ${default} ] Server exited. Exit code: ${EXIT_CODE}\n"
report report
@ -516,7 +518,6 @@ activate(){
echo -e "Mod id ${ID} - ${COLOR}${MODNAME}${default} ${WW}activated" echo -e "Mod id ${ID} - ${COLOR}${MODNAME}${default} ${WW}activated"
popd > /dev/null popd > /dev/null
done done
status
} }
# List mods # List mods
@ -560,7 +561,6 @@ status(){
loadconfig loadconfig
INSTALLED="${NO}" INSTALLED="${NO}"
RUNNING="${NO}" RUNNING="${NO}"
# DayZ Server files installation # DayZ Server files installation
if [ -f "${SERVER_INSTALL_FILE}" ] if [ -f "${SERVER_INSTALL_FILE}" ]
then then
@ -574,10 +574,10 @@ status(){
F=$(date +%s -r /tmp/parameters) F=$(date +%s -r /tmp/parameters)
DAYS=$(( (${D} - ${F}) / 86400 )) DAYS=$(( (${D} - ${F}) / 86400 ))
UPTIME="${DAYS} days "$(date -d@$(($(date +%s) - $(date +%s -r /tmp/parameters))) -u +"%H hours %M minutes %S seconds") UPTIME="${DAYS} days "$(date -d@$(($(date +%s) - $(date +%s -r /tmp/parameters))) -u +"%H hours %M minutes %S seconds")
RUNNING="${YES}\nUptime: ${green}${UPTIME}${default}" RUNNING="${YES}\nUptime: ${green}${UPTIME}${default}"
# Current parameters # Current parameters
RUNNING="${RUNNING}\nRunning Parameters: $(cat /tmp/parameters)\nRunning mod parameter: $(cat /tmp/mod_command_line)" RUNNING="${RUNNING}\nRunning parameters: ${green}$(cat /tmp/parameters)\nRunning mod parameter: $(cat /tmp/mod_command_line)${default}"
RUNNING="${RUNNING}\nRunning server parameter: ${green}$(cat /tmp/server_command_line)${default}"
fi fi
# Release or Experimental # Release or Experimental
if [[ ${release_client_appid} = "221100" ]] if [[ ${release_client_appid} = "221100" ]]
@ -590,8 +590,7 @@ status(){
# Map # Map
MAP=${MAP} MAP=${MAP}
# Number of mods plus the list denoting on or off # Number of mods plus the list denoting on or off
echo -ne " echo -ne "Server files installed: ${INSTALLED}"
Server files installed: ${INSTALLED}"
if [[ "${INSTALLED}" = "${NO}" ]] if [[ "${INSTALLED}" = "${NO}" ]]
then then
echo echo
@ -601,15 +600,16 @@ Server files installed: ${INSTALLED}"
get_mods get_mods
echo -ne " echo -ne "
Active mods: " Active mods: "
activelist activelist
echo -e "${MODS} echo -e "${MODS}
Server running: ${RUNNING} Server running: ${RUNNING}
Working parameters: ${parameters} Working parameters: ${yellow}${parameters}${default}
Working mod parameter: ${mod_command_line}" Working mod parameter: ${yellow}${mod_command_line}${default}
Working server parameter: ${yellow}${server_command_line}${default}"
if [[ "${INSTALLED}" = "${YES}" ]] if [[ "${INSTALLED}" = "${YES}" ]]
then then
echo "Map: ${MAP}" echo -e "Map: ${green}${MAP}${default}"
echo "Version: ${VERSION}" echo -e "Version: ${green}${VERSION}${default}"
fi fi
echo echo
} }