| #!/bin/bash |
| |
| # `unicode_lint.sh' determines whether source files under ${dirs} directories |
| # contain Unicode characters, and fails if any do. |
| # |
| # We don't recommend to call this script directly. |
| # Instead of it, use `make lint-unicode` via root directory Makefile. |
| |
| # ${dirs} : target directories |
| dirs=(./ ./cli ./tests ./tests/bench ./tests/collisions) |
| |
| SCRIPT_DIR="`dirname "${BASH_SOURCE[0]}"`" |
| cd ${SCRIPT_DIR}/.. |
| |
| echo "Ensure no unicode character is present in source files *.{c,h}" |
| pass=true |
| |
| # Scan each directory in ${dirs} for Unicode in source (*.c, *.h) files |
| i=0 |
| while [ $i -lt ${#dirs[@]} ] |
| do |
| dir=${dirs[$i]} |
| echo dir=$dir |
| result=$( |
| find ${dir} -regex '.*\.\(c\|h\)$' -exec grep -P -n "[^\x00-\x7F]" {} \; -exec echo "{}: FAIL" \; |
| ) |
| if [[ $result ]]; then |
| echo "$result" |
| pass=false |
| fi |
| i=`expr $i + 1` |
| done |
| |
| |
| # Result |
| if [ "$pass" = true ]; then |
| echo "All tests successful: no unicode character detected" |
| echo "Result: PASS" |
| exit 0 |
| else |
| echo "Result: FAIL" |
| exit 1 |
| fi |