Update .gitea/workflows/ci.yml

This commit is contained in:
Arlind
2025-06-16 10:48:47 +02:00
parent eaed1669e9
commit 834955d09d

View File

@@ -241,79 +241,6 @@ jobs:
mv "$SKINS_DIR"/* "$DANSER_SKINS_DIR"
echo "Skin files moved."
- name: Check for Duplicate skin.ini Names
shell: bash
run: |
set -euo pipefail
echo "[Duplicate Skin Name Check Started]"
# Guard: ensure DANSER_SKINS_DIR is set and exists
if [ -z "${DANSER_SKINS_DIR:-}" ] || [ ! -d "${DANSER_SKINS_DIR}" ]; then
echo "DANSER_SKINS_DIR is not set or not a directory. Exiting."
exit 1
fi
sanitize_filename() {
local filename="$1"
echo "$filename" \
| sed -e 's#[\\/:\*\?"<>|]#-#g' -e 's#%#_#g' \
| tr -s ' ' \
| sed 's/^ *//;s/ *$//'
}
declare -A name_counts=()
declare -A name_dirs=()
duplicates=()
shopt -s nullglob
for dir in "${DANSER_SKINS_DIR}"/*; do
[ -d "$dir" ] || continue
dir_base=$(basename "$dir" | tr -d $'\r\n')
name="$dir_base"
ini=$(find "$dir" -maxdepth 1 -iname "skin.ini" | head -n1 || true)
if [ -f "$ini" ]; then
line=$(grep -i '^[[:space:]]*Name:' "$ini" | head -n1 || true)
if [ -n "${line:-}" ]; then
val="${line#*:}"
val=$(echo "$val" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
name=$(sanitize_filename "$val")
fi
fi
name_counts["$name"]=$(( ${name_counts["$name"]:-0} + 1 ))
if [ -z "${name_dirs[$name]:-}" ]; then
name_dirs["$name"]="$dir_base"
else
name_dirs["$name"]+=",${dir_base}"
fi
done
shopt -u nullglob
for nm in "${!name_counts[@]}"; do
if [ "${name_counts[$nm]}" -gt 1 ]; then
duplicates+=("$nm")
fi
done
if [ "${#duplicates[@]}" -gt 0 ]; then
echo "⚠️ Duplicate skin.ini Names found:"
for nm in "${duplicates[@]}"; do
IFS=',' read -r -a dirs <<< "${name_dirs[$nm]}"
echo " • $nm (${name_counts[$nm]} skins):"
for d in "${dirs[@]}"; do
echo " - $d"
done
done
else
echo "✓ No duplicate skin.ini Names detected."
fi
echo "[Duplicate Skin Name Check Completed]"
- name: Generate Danser videos and screenshots
shell: bash
run: |
@@ -403,10 +330,10 @@ jobs:
INDEX=1
sanitize_filename() {
echo "$1" \
| sed -e 's#[\\/:\*\?"<>|]#-#g' -e 's#%#_#g' \
| tr -s ' ' \
| sed 's/^ *//;s/ *$//'
echo "$1" | \
tr -d '\000-\037' | \
sed -e 's#[\\/:\*\?"<>|]#-#g' | \
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
}
for skin_path in "${skins[@]}"; do
@@ -467,10 +394,10 @@ jobs:
[ "${#skin_dirs[@]}" -eq 0 ] && { echo "No skins to process. Exiting."; exit 0; }
sanitize_filename() {
echo "$1" \
| sed -e 's#[\\/:\*\?"<>|]#-#g' -e 's#%#_#g' \
| tr -s ' ' \
| sed 's/^ *//;s/ *$//'
echo "$1" | \
tr -d '\000-\037' | \
sed -e 's#[\\/:\*\?"<>|]#-#g' | \
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
}
ICONS_JSON_FILE="${{ github.workspace }}/.gitea/workflows/icons.json"
@@ -558,10 +485,10 @@ jobs:
[ "${#skin_dirs[@]}" -eq 0 ] && { echo "No skins to process. Exiting."; exit 0; }
sanitize_filename() {
echo "$1" \
| sed -e 's#[\\/:\*\?"<>|]#-#g' -e 's#%#_#g' \
| tr -s ' ' \
| sed 's/^ *//;s/ *$//'
echo "$1" | \
tr -d '\000-\037' | \
sed -e 's#[\\/:\*\?"<>|]#-#g' | \
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
}
FIXED_TIMESTAMP="2025-01-01 00:00:00"
@@ -612,7 +539,7 @@ jobs:
echo "$1" | \
tr -d '\000-\037' | \
sed -e 's#[\\/:\*\?"<>|]#-#g' | \
sed 's/^[[:space:]]*//;s/[[:space:]]*$//'
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
}
url_encode_path() {
@@ -764,13 +691,11 @@ jobs:
set -euo pipefail
echo "[Migration of flat assets started]"
# helper to sanitize header
sanitize() {
echo "$1" \
| tr -d '\r\n' \
| sed -e 's#[\\/:\*\?"<>|]#-#g' -e 's#%#_#g' \
| tr -s ' ' \
| sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
echo "$1" | \
tr -d '\000-\037' | \
sed -e 's#[\\/:\*\?"<>|]#-#g' | \
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
}
readarray -t skins <<< "$ALL_SKINS_DIR"
@@ -782,6 +707,12 @@ jobs:
raw=$(grep -i '^[[:space:]]*Name:' "$ini" | head -n1 || true)
raw="${raw#*:}"
header=$(sanitize "$raw")
if [[ -z "$header" ]]; then
header=$(sanitize "$skin")
fi
echo "DEBUG: raw='$raw' sanitized='$header' for skin='$skin'"
else
echo "DEBUG: no skin.ini found, using fallback: sanitized='$header' for skin='$skin'"
fi
[[ -n "$header" ]] && hdr2fld["$header"]="$skin"
done
@@ -825,20 +756,16 @@ jobs:
set -euo pipefail
echo "[Cleanup Extra Files Started]"
# Remove legacy docs
[ -d src/docs ] && rm -rf src/docs
[ -f how-to-use.md ] && rm -f how-to-use.md
# Read the current list of skins
readarray -t skins <<< "$ALL_SKINS_DIR"
# Helper to sanitize header (for pruning inside)
sanitize() {
echo "$1" \
| tr -d '\r\n' \
| sed -e 's#[\\/:\*\?"<>|]#-#g' -e 's#%#_#g' \
| tr -s ' ' \
| sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
sanitize_filename() {
echo "$1" | \
tr -d '\000-\037' | \
sed -e 's#[\\/:\*\?"<>|]#-#g' | \
sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
}
for root in "$REPO_SCREENSHOT_DIR" "$REPO_RANKING_PANEL_DIR" "$REPO_MOD_ICONS_DIR" "$OSK_PATH"; do
@@ -853,12 +780,15 @@ jobs:
done
for skin in "${skins[@]}"; do
header=$(sanitize "$skin")
header=$(sanitize_filename "$skin")
ini=$(find "$DANSER_SKINS_DIR/$skin" -maxdepth 1 -type f -iname "skin.ini" -print -quit || true)
if [[ -f "$ini" ]]; then
raw=$(grep -i '^[[:space:]]*Name:' "$ini" | head -n1 || true)
raw="${raw#*:}"
header=$(sanitize "$raw")
tmp_header=$(sanitize_filename "$raw")
if [[ -n "$tmp_header" ]]; then
header="$tmp_header"
fi
fi
expect_gif="$header.gif"