Avoid word splitting and pathname expansion (ab)use

This commit is contained in:
Gunter Labes 2023-05-31 19:01:48 +02:00 committed by GitHub
parent 0005a2eb23
commit 2548e3b680
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,8 @@
#!/bin/bash
shopt -s globstar
TERM=${TERM-xterm} # hopefully a good approximation of what github supports
reset=$(tput sgr0)
red=$(tput setaf 1)
green=$(tput setaf 2)
@ -34,7 +37,7 @@ validate() {
validate_core() { validate "$1" ./wesnoth --validate data/_main.cfg; }
validate_misc() { validate "$1" ./wesnoth --data-dir=. --validate=data/_main.cfg --preprocess-defines="$2"; }
validate_achievements() { validate "Achievements" ./wesnoth --data-dir=. --validate=data/achievements.cfg --use-schema=data/schema/achievements.cfg; }
validate_dialog() { validate "$1 dialog $(basename $2 .cfg)" ./wesnoth --data-dir=. --validate=$2 --use-schema=data/schema/gui_window.cfg; }
validate_dialog() { validate "$1 dialog $(basename "$2" .cfg)" ./wesnoth --data-dir=. --validate="$2" --use-schema=data/schema/gui_window.cfg; }
validate_schema() { validate "schema $1" ./wesnoth --data-dir=. --validate-schema=data/schema/"$2".cfg; }
validate_campaign() {
@ -66,9 +69,9 @@ validate_campaign() {
error "$name validation complete! Success: No"
echo "------"
fi
for gui in $(find data/campaigns/$name -path "*/gui/*.cfg"); do
validate_dialog $name $gui || success=No
for gui in data/campaigns/"$name"/**/gui/*.cfg; do
validate_dialog "$name" "$gui" || success=No
done
[ "$success" = "Yes" ]
@ -89,10 +92,10 @@ validate_schema "Languages" "languages" || RET=1
validate_core "Core" || RET=1
validate_achievements || RET=1
for gui in $(find data/modifications -path "*/gui/*.cfg"); do
for gui in data/modifications/**/gui/*.cfg; do
name=${gui#"data/modifications/"}
name=${name%%/*}
validate_dialog "modification $name" $gui || RET=1
validate_dialog "modification $name" "$gui" || RET=1
done
validate "Fonts" ./wesnoth --validate=data/hardwired/fonts.cfg --use-schema=data/schema/fonts.cfg