Update .gitea/workflows/ci.yml
This commit is contained in:
@@ -178,32 +178,45 @@ jobs:
|
|||||||
- name: Check for Duplicate skin.ini Names
|
- name: Check for Duplicate skin.ini Names
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
echo "[Duplicate Skin Name Check Started]"
|
echo "[Duplicate Skin Name Check Started]"
|
||||||
|
|
||||||
|
# Ensure DANSER_SKINS_DIR is set and valid
|
||||||
|
if [ -z "${DANSER_SKINS_DIR:-}" ] || [ ! -d "${DANSER_SKINS_DIR}" ]; then
|
||||||
|
echo "DANSER_SKINS_DIR is not set or is not a directory. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
sanitize_filename() {
|
sanitize_filename() {
|
||||||
echo "$1" \
|
local filename="$1"
|
||||||
|
echo "$filename" \
|
||||||
| sed -e 's#[\\/:\*\?"<>|]#-#g' -e 's#%#_#g' \
|
| sed -e 's#[\\/:\*\?"<>|]#-#g' -e 's#%#_#g' \
|
||||||
| tr -s ' ' \
|
| tr -s ' ' \
|
||||||
| sed 's/^ *//;s/ *$//'
|
| sed 's/^ *//;s/ *$//'
|
||||||
}
|
}
|
||||||
|
|
||||||
declare -A name_counts
|
declare -A name_counts=()
|
||||||
duplicates=()
|
duplicates=()
|
||||||
|
|
||||||
for dir in "$DANSER_SKINS_DIR"/*; do
|
shopt -s nullglob
|
||||||
|
for dir in "${DANSER_SKINS_DIR}"/*; do
|
||||||
[ -d "$dir" ] || continue
|
[ -d "$dir" ] || continue
|
||||||
|
|
||||||
name=$(basename "$dir" | tr -d $'\r\n')
|
name=$(basename "$dir" | tr -d $'\r\n')
|
||||||
ini=$(find "$dir" -maxdepth 1 -iname "skin.ini" | head -n1)
|
|
||||||
|
ini=$(find "$dir" -maxdepth 1 -iname "skin.ini" | head -n1 || true)
|
||||||
if [ -f "$ini" ]; then
|
if [ -f "$ini" ]; then
|
||||||
line=$(grep -i '^[[:space:]]*Name:' "$ini" | head -n1)
|
line=$(grep -i '^[[:space:]]*Name:' "$ini" | head -n1)
|
||||||
if [ -n "$line" ]; then
|
if [ -n "${line:-}" ]; then
|
||||||
val="${line#*:}"
|
val="${line#*:}"
|
||||||
val=$(echo "$val" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
val=$(echo "$val" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||||
name=$(sanitize_filename "$val")
|
name=$(sanitize_filename "$val")
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
name_counts["$name"]=$(( ${name_counts["$name"]:-0} + 1 ))
|
name_counts["$name"]=$(( ${name_counts["$name"]:-0} + 1 ))
|
||||||
done
|
done
|
||||||
|
shopt -u nullglob
|
||||||
|
|
||||||
for name in "${!name_counts[@]}"; do
|
for name in "${!name_counts[@]}"; do
|
||||||
if [ "${name_counts[$name]}" -gt 1 ]; then
|
if [ "${name_counts[$name]}" -gt 1 ]; then
|
||||||
@@ -214,6 +227,7 @@ jobs:
|
|||||||
if [ "${#duplicates[@]}" -gt 0 ]; then
|
if [ "${#duplicates[@]}" -gt 0 ]; then
|
||||||
echo "⚠️ Duplicate skin.ini Names found:"
|
echo "⚠️ Duplicate skin.ini Names found:"
|
||||||
printf ' • %s\n' "${duplicates[@]}"
|
printf ' • %s\n' "${duplicates[@]}"
|
||||||
|
exit 1
|
||||||
else
|
else
|
||||||
echo "✓ No duplicate skin.ini Names detected."
|
echo "✓ No duplicate skin.ini Names detected."
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user