| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/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
|