diff --git a/.gitea/workflows/test-skins.yml b/.gitea/workflows/test-skins.yml index 7823692..39b0a95 100644 --- a/.gitea/workflows/test-skins.yml +++ b/.gitea/workflows/test-skins.yml @@ -128,29 +128,80 @@ jobs: fi done < /tmp/links_$$.txt - # Display categorized results - if [ -s /tmp/download_$$.txt ]; then - echo "download:" - sort -u /tmp/download_$$.txt - echo "" - fi - - if [ -s /tmp/media_$$.txt ]; then - echo "media:" - sort -u /tmp/media_$$.txt - echo "" - fi - - if [ -s /tmp/video_$$.txt ]; then - echo "video:" - sort -u /tmp/video_$$.txt - echo "" - fi - - if [ -s /tmp/tags_$$.txt ]; then - echo "tags:" - sort -u /tmp/tags_$$.txt - echo "" + # Display categorized results - special handling for README + if [[ "$md_file" == "./README.md" ]]; then + # For README, group by skin name + > /tmp/skins_$$.txt + + # Extract unique skin names from download links + if [ -s /tmp/download_$$.txt ]; then + grep -oP 'export/[^/]+' /tmp/download_$$.txt | sed 's|export/||' | sort -u > /tmp/skins_$$.txt || true + fi + + # Show general links first (not skin-specific) + if [ -s /tmp/download_$$.txt ]; then + general_downloads=$(grep -v '/export/.*\.osk' /tmp/download_$$.txt | sort -u || true) + if [ -n "$general_downloads" ]; then + echo "general:" + echo "$general_downloads" + echo "" + fi + fi + + # Show each skin's links together + while IFS= read -r skin_name; do + [ -z "$skin_name" ] && continue + + echo "skin: $skin_name" + + # Download link + grep "/export/$skin_name/.*\.osk" /tmp/download_$$.txt 2>/dev/null || true + + # Thumbnail + grep "thumbnail/$skin_name/" /tmp/media_$$.txt 2>/dev/null || true + + # Docs + grep "/docs/$skin_name/" /tmp/tags_$$.txt 2>/dev/null || true + + echo "" + done < /tmp/skins_$$.txt + + # Show version tags separately + if [ -s /tmp/tags_$$.txt ]; then + version_tags=$(grep '/src/tag/' /tmp/tags_$$.txt | sort -u || true) + if [ -n "$version_tags" ]; then + echo "version tags:" + echo "$version_tags" + echo "" + fi + fi + + rm -f /tmp/skins_$$.txt + else + # For other markdown files, show categorized as before + if [ -s /tmp/download_$$.txt ]; then + echo "download:" + sort -u /tmp/download_$$.txt + echo "" + fi + + if [ -s /tmp/media_$$.txt ]; then + echo "media:" + sort -u /tmp/media_$$.txt + echo "" + fi + + if [ -s /tmp/video_$$.txt ]; then + echo "video:" + sort -u /tmp/video_$$.txt + echo "" + fi + + if [ -s /tmp/tags_$$.txt ]; then + echo "tags:" + sort -u /tmp/tags_$$.txt + echo "" + fi fi rm -f /tmp/download_$$.txt /tmp/media_$$.txt /tmp/video_$$.txt /tmp/tags_$$.txt