From d0f42a4224cecc15b12a88d11482d94846d5b7ea Mon Sep 17 00:00:00 2001 From: Arlind Sulejmani Date: Wed, 18 Jun 2025 19:27:49 +0200 Subject: [PATCH] yeah i have no idea --- .gitea/workflows/ci.yml | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 90f55612..15b6c7bd 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -673,18 +673,30 @@ jobs: echo "Processing ordered skin: $skin" ordered["$skin"]=1 dir="$DANSER_SKINS_DIR/$skin" - [ ! -d "$dir" ] && echo "Directory not found: $dir" && continue - ini_file=$(find "$dir" -maxdepth 1 -iname "skin.ini" | head -n1) + [ ! -d "$dir" ] && echo "⚠️ Directory not found: $dir" && continue + + ini_file=$(find "$dir" -maxdepth 1 -iname "skin.ini" | head -n1 || true) skin_header="$skin" + if [ -f "$ini_file" ]; then - line=$(grep -i '^[[:space:]]*Name:' "$ini_file" | head -n1) + # Robust grep: match Name: even if no leading space, ignore encoding issues + line=$(grep -a -i '^Name[[:space:]]*:' "$ini_file" | head -n1 || true) if [ -n "$line" ]; then val="${line#*:}" val="$(echo "$val" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" if [ -n "$val" ]; then skin_header=$(sanitize_filename "$val") + else + skin_header=$(sanitize_filename "$skin") + echo "⚠️ Warning: 'Name:' field empty in $skin. Falling back to folder name." >&2 fi + else + skin_header=$(sanitize_filename "$skin") + echo "⚠️ Warning: No 'Name:' field found in $skin. Falling back to folder name." >&2 fi + else + echo "⚠️ Warning: No skin.ini found for $skin. Skipping." >&2 + continue fi raw_path="$(printf "%s/%s" "$skin" "$skin_header" | sed 's/^ *//;s/ *$//')" @@ -710,15 +722,25 @@ jobs: ini_file=$(find "$dir" -maxdepth 1 -iname "skin.ini" | head -n1 || true) skin_header="$skin" + if [ -f "$ini_file" ]; then - line=$(grep -i '^[[:space:]]*Name:' "$ini_file" | head -n1 || true) + line=$(grep -a -i '^Name[[:space:]]*:' "$ini_file" | head -n1 || true) if [ -n "$line" ]; then val="${line#*:}" val="$(echo "$val" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')" if [ -n "$val" ]; then skin_header=$(sanitize_filename "$val") + else + skin_header=$(sanitize_filename "$skin") + echo "⚠️ Warning: 'Name:' field empty in $skin. Falling back to folder name." >&2 fi + else + skin_header=$(sanitize_filename "$skin") + echo "⚠️ Warning: No 'Name:' field found in $skin. Falling back to folder name." >&2 fi + else + echo "⚠️ Warning: No skin.ini found for $skin. Skipping." >&2 + continue fi raw_path="$(printf "%s/%s" "$skin" "$skin_header" | sed 's/^ *//;s/ *$//')"