add fix inshallah
This commit is contained in:
@@ -27,12 +27,14 @@ runs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
echo "Discovering all skins in $SKINS_DIR…"
|
echo "Discovering all skins in $SKINS_DIR…"
|
||||||
mapfile -t skins < <(
|
temp_discover="/tmp/discover_skins_$RANDOM.txt"
|
||||||
find "$SKINS_DIR" -mindepth 1 -maxdepth 1 -type d \
|
find "$SKINS_DIR" -mindepth 1 -maxdepth 1 -type d \
|
||||||
| sed 's|'"$SKINS_DIR"'/||'
|
| 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<<EOF"
|
echo "all_skins<<EOF"
|
||||||
@@ -44,11 +46,12 @@ runs:
|
|||||||
id: detect
|
id: detect
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
set -e
|
||||||
echo "[Detect Changed Skin Directories Started]"
|
echo "[Detect Changed Skin Directories Started]"
|
||||||
|
|
||||||
# Parse JSON back into Bash array - using a temp file to avoid process substitution issues
|
# Parse JSON back into Bash array - avoid command substitution with parentheses
|
||||||
all_skins_json='${{ steps.discover_all.outputs.all_skins }}'
|
all_skins_json='${{ steps.discover_all.outputs.all_skins }}'
|
||||||
temp_skins_file=$(mktemp)
|
temp_skins_file="/tmp/all_skins_$RANDOM.txt"
|
||||||
printf '%s' "$all_skins_json" | jq -r '.[]' > "$temp_skins_file"
|
printf '%s' "$all_skins_json" | jq -r '.[]' > "$temp_skins_file"
|
||||||
mapfile -t all_skins < "$temp_skins_file"
|
mapfile -t all_skins < "$temp_skins_file"
|
||||||
rm -f "$temp_skins_file"
|
rm -f "$temp_skins_file"
|
||||||
@@ -78,27 +81,34 @@ runs:
|
|||||||
|
|
||||||
else
|
else
|
||||||
echo "→ No rebuild flags set. Finding latest git tag..."
|
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
|
if [[ -n "$latest_tag" ]]; then
|
||||||
echo "→ Latest tag found: $latest_tag"
|
echo "→ Latest tag found: $latest_tag"
|
||||||
echo "→ Finding added/modified skins since $latest_tag…"
|
echo "→ Finding added/modified skins since $latest_tag…"
|
||||||
|
|
||||||
mapfile -t skins < <(
|
temp_skins_am="/tmp/skins_am_$RANDOM.txt"
|
||||||
git diff --name-only -z --diff-filter=AM "$latest_tag" HEAD \
|
git diff --name-only -z --diff-filter=AM "$latest_tag" HEAD \
|
||||||
| while IFS= read -r -d '' file; do
|
| while IFS= read -r -d '' file; do
|
||||||
[[ $file == Skins/* ]] && echo "${file#Skins/}" | cut -d/ -f1
|
[[ $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 " ✓ Found ${#skins[@]} added/modified skins"
|
||||||
|
|
||||||
echo "→ Finding deleted skins since $latest_tag…"
|
echo "→ Finding deleted skins since $latest_tag…"
|
||||||
mapfile -t deleted_skins < <(
|
temp_skins_del="/tmp/skins_del_$RANDOM.txt"
|
||||||
git diff --name-only -z --diff-filter=D "$latest_tag" HEAD \
|
git diff --name-only -z --diff-filter=D "$latest_tag" HEAD \
|
||||||
| while IFS= read -r -d '' file; do
|
| while IFS= read -r -d '' file; do
|
||||||
[[ $file == Skins/* ]] && echo "${file#Skins/}" | cut -d/ -f1
|
[[ $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
|
if [ "${#deleted_skins[@]}" -gt 0 ]; then
|
||||||
for d in "${deleted_skins[@]}"; do
|
for d in "${deleted_skins[@]}"; do
|
||||||
echo "→ Skin '$d' was deleted"
|
echo "→ Skin '$d' was deleted"
|
||||||
@@ -125,7 +135,7 @@ runs:
|
|||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "[Writing Changed Skins to File]"
|
echo "[Writing Changed Skins to File]"
|
||||||
changed_skins_file=$(mktemp)
|
changed_skins_file="/tmp/changed_skins_$RANDOM.txt"
|
||||||
|
|
||||||
if [ "${#uniq_skins[@]}" -eq 0 ]; then
|
if [ "${#uniq_skins[@]}" -eq 0 ]; then
|
||||||
echo "→ No added/modified skins detected."
|
echo "→ No added/modified skins detected."
|
||||||
|
|||||||
Reference in New Issue
Block a user