Color more schema validation messages

Also simplified the implementation a bit and made it POSIX conform since it didn't really need any bash features.
This commit is contained in:
Gunter Labes 2022-06-10 15:39:22 +02:00 committed by GitHub
parent 848381ae2a
commit a63e6c47c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,102 +1,71 @@
#!/bin/bash #!/bin/bash
function validate_core() reset=$(tput sgr0)
{ red=$(tput setaf 1)
SUCCESS="Yes" green=$(tput setaf 2)
NAME="$1" blue=$(tput bold; tput setaf 4)
echo "------" print() { printf '%s%s%s\n' "$blue" "$*" "$reset"; }
echo "Validating $NAME..." error() { printf '%s%s%s\n' "$red" "$*" "$reset"; }
success() { printf '%s%s%s\n' "$green" "$*" "$reset"; }
./wesnoth --validate data/_main.cfg &> temp.log || SUCCESS="No" validate() {
if [ "$SUCCESS" == "No" ]; then local name="$1"
echo -e "\e[1;31m$NAME failed validation!\e[0m"
cat temp.log
rm temp.log
fi
echo "$NAME validation complete! Success: $SUCCESS"
echo "------"
[ "$SUCCESS" == "Yes" ]
}
function validate_misc()
{
SUCCESS="Yes"
NAME="$1"
DEFINE="$2"
echo "------"
echo "Validating $NAME..."
./wesnoth --data-dir=. --validate=data/_main.cfg --preprocess-defines=$DEFINE &> temp.log || SUCCESS="No"
if [ "$SUCCESS" == "No" ]; then
echo -e "\e[1;31m$NAME failed validation!\e[0m"
cat temp.log
rm temp.log
fi
echo "$NAME validation complete! Success: $SUCCESS"
echo "------"
[ "$SUCCESS" == "Yes" ]
}
function validate_schema()
{
SUCCESS="Yes"
NAME="$1"
FILE="$2"
echo "------"
echo "Validating schema $NAME..."
./wesnoth --data-dir=. --validate-schema=data/schema/$FILE.cfg &> temp.log || SUCCESS="No"
if [ "$SUCCESS" == "No" ]; then
echo -e "\e[1;31m$NAME failed validation!\e[0m"
cat temp.log
rm temp.log
fi
echo "$NAME validation complete! Success: $SUCCESS"
echo "------"
[ "$SUCCESS" == "Yes" ]
}
function validate_campaign()
{
SUCCESS="Yes"
NAME="$1"
DEFINE="$2"
shift shift
shift
DIFFICULTIES=("$@")
echo "------" echo "------"
echo "Validating $NAME..." print "Validating $name..."
for DIFFICULTY in ${DIFFICULTIES[@]}; do if "$@" > temp.log 2>&1; then
if [ "$SUCCESS" == "Yes" ]; then rm temp.log
echo "Validating $DIFFICULTY..." success "$name validation complete! Success: Yes"
./wesnoth --data-dir=. --validate=data/_main.cfg --preprocess-defines=$DEFINE,$DIFFICULTY &> temp.log || SUCCESS="No" echo "------"
return 0
else
error "$name failed validation!"
cat temp.log
rm temp.log
error "$name validation complete! Success: No"
echo "------"
return 1
fi
}
if [ "$SUCCESS" == "No" ]; then validate_core() { validate "$1" ./wesnoth --validate data/_main.cfg; }
echo -e "\e[1;31m$NAME failed $DIFFICULTY validation!\e[0m" validate_misc() { validate "$1" ./wesnoth --data-dir=. --validate=data/_main.cfg --preprocess-defines="$2"; }
validate_schema() { validate "$1" ./wesnoth --data-dir=. --validate-schema=data/schema/"$2".cfg; }
validate_campaign() {
local success=Yes name="$1" define="$2"
shift 2
echo "------"
print "Validating $name..."
for difficulty in "$@"; do
if [ "$success" = "Yes" ]; then
print "Validating $difficulty..."
if ! ./wesnoth --data-dir=. --validate=data/_main.cfg --preprocess-defines="$define,$difficulty" > temp.log 2>&1; then
success=No
error "$name failed $difficulty validation!"
cat temp.log cat temp.log
fi fi
rm temp.log rm temp.log
else else
echo "Skipping $DIFFICULTY validation" echo "Skipping $difficulty validation"
fi fi
done done
echo "$NAME validation complete! Success: $SUCCESS" if [ "$success" = "Yes" ]; then
echo "------" success "$name validation complete! Success: Yes"
echo "------"
[ "$SUCCESS" == "Yes" ] return 0
else
error "$name validation complete! Success: No"
echo "------"
return 1
fi
} }
RET=0 RET=0