From e33ad40e1b2247b1c8f39d9d232462f2e0cd2549 Mon Sep 17 00:00:00 2001 From: Frederick Roy Date: Fri, 13 Mar 2026 13:40:51 +0900 Subject: [PATCH 1/2] add missing plugin check in python scenes --- scripts/scene-tests.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/scripts/scene-tests.sh b/scripts/scene-tests.sh index 301246a..d20bade 100644 --- a/scripts/scene-tests.sh +++ b/scripts/scene-tests.sh @@ -386,6 +386,7 @@ ignore-scenes-with-missing-plugins() { echo "Searching for missing plugins..." while read scene; do + # XML scenes (.scn): parse tags if grep -q '^[ ]*<[ ]*RequiredPlugin' "$scene"; then grep '^[ ]*<[ ]*RequiredPlugin' "$scene" > "$output_dir/grep.tmp" while read match; do @@ -411,6 +412,25 @@ ignore-scenes-with-missing-plugins() { fi done < "$output_dir/grep.tmp" rm -f "$output_dir/grep.tmp" + # Python scenes (.py, .pyscn): parse addObject('RequiredPlugin', ...) calls + elif grep -q "addObject(['\"]RequiredPlugin['\"]" "$scene"; then + grep "addObject(['\"]RequiredPlugin['\"]" "$scene" > "$output_dir/grep.tmp" + while read match; do + plugin="$(echo "$match" | sed -e "s:.*name[ ]*=[ ]*[\'\"]\([^\'\"]*\)[\'\"].*:\1:g")" + local lib="$(get-lib "$plugin")" + if [ -z "$lib" ]; then + if grep -q "$scene" "$output_dir/all-tested-scenes.txt"; then + grep -v "$scene" "$output_dir/all-tested-scenes.txt" > "$output_dir/all-tested-scenes.tmp" + mv "$output_dir/all-tested-scenes.tmp" "$output_dir/all-tested-scenes.txt" + rm -f "$output_dir/all-tested-scenes.tmp" + if ! grep -q "$scene" "$output_dir/all-ignored-scenes.txt"; then + echo " ignore $scene: missing plugin \"$plugin\"" + echo "$scene" >> "$output_dir/all-ignored-scenes.txt" + fi + fi + fi + done < "$output_dir/grep.tmp" + rm -f "$output_dir/grep.tmp" fi done < "$output_dir/all-tested-scenes.txt" echo "Searching for missing plugins: done." From 6da4cd46237b6803ac99ccb06c1f50ad5d5b1e5b Mon Sep 17 00:00:00 2001 From: Frederick Roy Date: Fri, 13 Mar 2026 17:41:40 +0900 Subject: [PATCH 2/2] Update scripts/scene-tests.sh Co-authored-by: Paul Baksic <30337881+bakpaul@users.noreply.github.com> --- scripts/scene-tests.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/scene-tests.sh b/scripts/scene-tests.sh index d20bade..eabe67f 100644 --- a/scripts/scene-tests.sh +++ b/scripts/scene-tests.sh @@ -416,7 +416,14 @@ ignore-scenes-with-missing-plugins() { elif grep -q "addObject(['\"]RequiredPlugin['\"]" "$scene"; then grep "addObject(['\"]RequiredPlugin['\"]" "$scene" > "$output_dir/grep.tmp" while read match; do - plugin="$(echo "$match" | sed -e "s:.*name[ ]*=[ ]*[\'\"]\([^\'\"]*\)[\'\"].*:\1:g")" + if echo "$match" | grep -q 'pluginName'; then + plugin="$(echo "$match" | sed -e "s:.*pluginName[ ]*=[ ]*[\'\"]\([^\'\"]*\)[\'\"].*:\1:g")" + elif echo "$match" | grep -q 'name'; then + plugin="$(echo "$match" | sed -e "s:.*name[ ]*=[ ]*[\'\"]\([^\'\"]*\)[\'\"].*:\1:g")" + else + echo " Warning: unknown RequiredPlugin found in $scene" + break + fi local lib="$(get-lib "$plugin")" if [ -z "$lib" ]; then if grep -q "$scene" "$output_dir/all-tested-scenes.txt"; then