Add support for ignoring certain resources

This commit is contained in:
TheiLLeniumStudios
2023-02-07 11:03:19 +00:00
parent 21abc53bbd
commit c2f01bf4a9
2 changed files with 21 additions and 13 deletions
+13
View File
@@ -22,6 +22,17 @@ inputs:
description: "Resources folder name" description: "Resources folder name"
required: false required: false
default: "resources" default: "resources"
restartServerWhen0Players:
description: "Restart the server instead when there are no players on the server"
required: false
default: false
type: boolean
ignoreResources:
description: "List of resources that you want to ignore separated by spaces and not restart when changes are made to them"
required: false
default: ""
type: string
runs: runs:
using: "docker" using: "docker"
image: "Dockerfile" image: "Dockerfile"
@@ -31,3 +42,5 @@ runs:
- ${{ inputs.serverPort }} - ${{ inputs.serverPort }}
- ${{ inputs.rconPassword }} - ${{ inputs.rconPassword }}
- ${{ inputs.resourcesFolder }} - ${{ inputs.resourcesFolder }}
- ${{ inputs.restartServerWhen0Players }}
- ${{ inputs.ignoreResources }}
+6 -11
View File
@@ -13,17 +13,6 @@ exists_in_array() {
return 1 return 1
} }
exists_in_array() {
local element="$1"
local array_str="$2"
for i in $array_str; do
if [ "$i" = "$element" ]; then
return 0
fi
done
return 1
}
append_if_not_exists() { append_if_not_exists() {
local element="$1" local element="$1"
local array_str="$2" local array_str="$2"
@@ -45,6 +34,8 @@ SERVER_IP=$2
SERVER_PORT=$3 SERVER_PORT=$3
RCON_PASSWORD=$4 RCON_PASSWORD=$4
RESOURCES_FOLDER=$5 RESOURCES_FOLDER=$5
RESTART_SERVER_WHEN_0_PLAYERS=$6
IGNORED_RESOURCES=$7
git config --global --add safe.directory /github/workspace git config --global --add safe.directory /github/workspace
@@ -77,8 +68,12 @@ if ! is_array_empty "$resources_to_restart"; then
if [ "$RESTART_INDIVIDUAL_RESOURCES" = true ]; then if [ "$RESTART_INDIVIDUAL_RESOURCES" = true ]; then
echo "Will restart individual resources" echo "Will restart individual resources"
for resource in $resources_to_restart; do for resource in $resources_to_restart; do
if exists_in_array "${resource}" "${IGNORED_RESOURCES}"; then
echo "Ignoring restart of the resource ${resource}"
else
echo "Restarting ${resource}" echo "Restarting ${resource}"
icecon --command "ensure ${resource}" ${SERVER_IP}:${SERVER_PORT} ${RCON_PASSWORD} icecon --command "ensure ${resource}" ${SERVER_IP}:${SERVER_PORT} ${RCON_PASSWORD}
fi
done done
else else
echo "Will restart the whole server" echo "Will restart the whole server"