diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 0909b66..ed2230e 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -673,17 +673,12 @@ jobs: echo "README generation completed successfully." - - name: Cleanup Extraneous Files + - name: Cleanup Extra Files shell: bash run: | set -euo pipefail - echo "[Cleanup Extraneous Files Started]" - echo " DANSER_SKINS_DIR= $DANSER_SKINS_DIR" - echo " REPO_SCREENSHOT_DIR=$REPO_SCREENSHOT_DIR" - echo " REPO_RANKING_PANEL_DIR=$REPO_RANKING_PANEL_DIR" - echo " REPO_MOD_ICONS_DIR=$REPO_MOD_ICONS_DIR" - echo " OSK_PATH= $OSK_PATH" + echo "[Cleanup Extra Files Started]" rm -rf src/docs || true rm -f how-to-use.md || true @@ -697,53 +692,45 @@ jobs: expected_basenames=() for dir in "$DANSER_SKINS_DIR"/*; do - echo " Found skin directory: $dir" [ -d "$dir" ] || continue raw=$(basename "$dir" | tr -d '\r\n') header=$(sanitize_filename "$raw") expected_basenames+=("$header") - ini=$(find "$dir" -maxdepth 1 -iname skin.ini | head -n1 || true) - if [ -f "$ini" ]; then - name_line=$({ grep -i '^[[:space:]]*name:' "$ini" || true; } | head -n1) - - if [ -n "$name_line" ]; then + if ini=$(find "$dir" -maxdepth 1 -iname skin.ini | head -n1); then + if name_line=$(grep -i '^[[:space:]]*name:' "$ini" | head -n1); then val="${name_line#*:}" val=$(echo "$val" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') header=$(sanitize_filename "$val") + expected_basenames+=("$header") fi fi - - expected_basenames+=("$header") done - echo " Raw expected basenames: ${expected_basenames[*]}" - readarray -t expected_basenames < <(printf "%s\n" "${expected_basenames[@]}" | sort -u) - + readarray -t expected_basenames < <( + printf "%s\n" "${expected_basenames[@]}" | sort -u + ) for b in "${expected_basenames[@]}"; do expected_basenames+=("${b}-mod-icons") done - readarray -t expected_basenames < <(printf "%s\n" "${expected_basenames[@]}" | sort -u) - echo " Final expected basenames: ${expected_basenames[*]}" + readarray -t expected_basenames < <( + printf "%s\n" "${expected_basenames[@]}" | sort -u + ) prune_dir() { - echo " Pruning directory: $1" for f in "$1"/*; do - echo " Checking: $f" [ -e "$f" ] || continue - fn=$(basename "$f") - base="${fn%.*}" + base="${f##*/}" + base="${base%.*}" keep=false for kb in "${expected_basenames[@]}"; do - [ "$base" = "$kb" ] && { keep=true; break; } + if [[ "$base" == "$kb" ]]; then + keep=true + break + fi done - if ! $keep; then - echo " → Removing $f" - rm -rf "$f" - else - echo " → Keeping $f" - fi + $keep || rm -rf "$f" done } @@ -752,7 +739,7 @@ jobs: prune_dir "$REPO_MOD_ICONS_DIR" prune_dir "$OSK_PATH" - echo "[Cleanup Extraneous Files Complete]" + echo "[Cleanup Extra Files Complete]" - name: Configure Git shell: bash