From ace7709b2996711ec09ec9dc57a8e2d781407ff4 Mon Sep 17 00:00:00 2001 From: Arlind Sulejmani Date: Tue, 28 Oct 2025 21:52:18 +0100 Subject: [PATCH] add fix inshallah --- .gitea/actions/discover-skins/action.yml | 44 +++++++++++++++--------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/.gitea/actions/discover-skins/action.yml b/.gitea/actions/discover-skins/action.yml index e13bd80..4459bfd 100644 --- a/.gitea/actions/discover-skins/action.yml +++ b/.gitea/actions/discover-skins/action.yml @@ -27,12 +27,14 @@ runs: shell: bash run: | echo "Discovering all skins in $SKINS_DIR…" - mapfile -t skins < <( - find "$SKINS_DIR" -mindepth 1 -maxdepth 1 -type d \ - | sed 's|'"$SKINS_DIR"'/||' - ) + temp_discover="/tmp/discover_skins_$RANDOM.txt" + find "$SKINS_DIR" -mindepth 1 -maxdepth 1 -type d \ + | sed 's|'"$SKINS_DIR"'/||' > "$temp_discover" + mapfile -t skins < "$temp_discover" + rm -f "$temp_discover" - json=$(printf '%s\n' "${skins[@]}" | jq -R . | jq -cs .) + json="" + json="$(printf '%s\n' "${skins[@]}" | jq -R . | jq -cs .)" { echo "all_skins< "$temp_skins_file" mapfile -t all_skins < "$temp_skins_file" rm -f "$temp_skins_file" @@ -78,27 +81,34 @@ runs: else echo "→ No rebuild flags set. Finding latest git tag..." - latest_tag=$(git tag --sort=-creatordate | head -n 1 || true) + git tag --sort=-creatordate | head -n 1 > /tmp/latest_tag_$RANDOM.txt || true + latest_tag="" + if [ -s /tmp/latest_tag_$RANDOM.txt ]; then + latest_tag="$(cat /tmp/latest_tag_$RANDOM.txt)" + rm -f /tmp/latest_tag_$RANDOM.txt + fi if [[ -n "$latest_tag" ]]; then echo "→ Latest tag found: $latest_tag" echo "→ Finding added/modified skins since $latest_tag…" - mapfile -t skins < <( - git diff --name-only -z --diff-filter=AM "$latest_tag" HEAD \ + temp_skins_am="/tmp/skins_am_$RANDOM.txt" + git diff --name-only -z --diff-filter=AM "$latest_tag" HEAD \ | while IFS= read -r -d '' file; do [[ $file == Skins/* ]] && echo "${file#Skins/}" | cut -d/ -f1 - done | sort -u - ) + done | sort -u > "$temp_skins_am" + mapfile -t skins < "$temp_skins_am" + rm -f "$temp_skins_am" echo " ✓ Found ${#skins[@]} added/modified skins" echo "→ Finding deleted skins since $latest_tag…" - mapfile -t deleted_skins < <( - git diff --name-only -z --diff-filter=D "$latest_tag" HEAD \ + temp_skins_del="/tmp/skins_del_$RANDOM.txt" + git diff --name-only -z --diff-filter=D "$latest_tag" HEAD \ | while IFS= read -r -d '' file; do [[ $file == Skins/* ]] && echo "${file#Skins/}" | cut -d/ -f1 - done | sort -u - ) + done | sort -u > "$temp_skins_del" + mapfile -t deleted_skins < "$temp_skins_del" + rm -f "$temp_skins_del" if [ "${#deleted_skins[@]}" -gt 0 ]; then for d in "${deleted_skins[@]}"; do echo "→ Skin '$d' was deleted" @@ -125,7 +135,7 @@ runs: echo "" echo "[Writing Changed Skins to File]" - changed_skins_file=$(mktemp) + changed_skins_file="/tmp/changed_skins_$RANDOM.txt" if [ "${#uniq_skins[@]}" -eq 0 ]; then echo "→ No added/modified skins detected."