chore(Apps/CodeStyle): rewrite Ci-codestyle in python (#19714)

* initial version

* port most current checks

* allow to specify for each checks the exclude files

* Update _ci-codestyle.py

* fix trailing whitespace check and the error_handler logic

* optimize the script to parse all files only one time

* restore the error handling after that all checks are passed

* fix double blank lines at the end of the file

* improve outputs and the codestyle

* .

* update github workflow to the new script

*drop the old ci-codestyle
*move and rename the python script

* use getcwd instead abspath to define src_directory where the script is launch

* test for github workflow

* few cleanup

* fix the logic with the result output

* remove GetTypeId from the output result

* restore GetTypeId() check

* fix reviews

* remove GetTypeId check for gameobjects

*not currently fixed in the core

* fix type hint for file parameters

* remove the test file
This commit is contained in:
Grimdhex
2024-08-27 11:19:13 +02:00
committed by GitHub
parent 126f3a31ee
commit 574ef5203a
3 changed files with 153 additions and 41 deletions

View File

@@ -1,40 +0,0 @@
#!/bin/bash
set -e
echo "Codestyle check script:"
echo
declare -A singleLineRegexChecks=(
["LOG_.+GetCounter"]="Use ObjectGuid::ToString().c_str() method instead of ObjectGuid::GetCounter() when logging. Check the lines above"
["[[:blank:]]$"]="Remove whitespace at the end of the lines above"
["\t"]="Replace tabs with 4 spaces in the lines above"
)
for check in ${!singleLineRegexChecks[@]}; do
echo " Checking RegEx: '${check}'"
if grep -P -r -I -n ${check} src; then
echo
echo "${singleLineRegexChecks[$check]}"
exit 1
fi
done
declare -A multiLineRegexChecks=(
["LOG_[^;]+GetCounter"]="Use ObjectGuid::ToString().c_str() method instead of ObjectGuid::GetCounter() when logging. Check the lines above"
["\n\n\n"]="Multiple blank lines detected, keep only one. Check the files above"
)
for check in ${!multiLineRegexChecks[@]}; do
echo " Checking RegEx: '${check}'"
if grep -Pzo -r -I ${check} src; then
echo
echo
echo "${multiLineRegexChecks[$check]}"
exit 1
fi
done
echo
echo "Everything looks good"