coreboot-kgpe-d16/util/lint/lint-stable-016-non-ascii
Martin Roth 0ad5fbd48d util: Update all shebangs to use /usr/bin/env
Instead of hardcoding paths to the executables, use the version in the
path.  This allows the scripts to work on more systems, and allows the
binary version to be changed more easily if needed.

Signed-off-by: Martin Roth <martin@coreboot.org>
Change-Id: Ifcc56aa21092cd3866eacb6a02d198110ec6051d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/48904
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2021-01-25 08:57:40 +00:00

35 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env sh
#
# SPDX-License-Identifier: GPL-2.0-only
# DESCR: Check for non-ASCII and unprintable characters
LC_ALL=C export LC_ALL
INCLUDED_FILES='\.[chsS]$\|\.asl$\|\.cb$\|\.inc$\|Kconfig\|\.ld$|\.txt\|\.hex'
EXCLUDED_DIRS='^payloads/external/\|^src/vendorcode/\|^Documentation/'
EXCLUDED_FILES='to-wiki/towiki\.sh$\|vga/vga_font\|video/font\|PDCurses.*x11'
EXCLUDED_PHRASES='Copyright\|Ported to\|Intel®\|°C\|°F\|Athlon™\|Copyright.*©'
# Exit if git isn't present or the code isn't in a git repo
if [ -z "$(command -v git)" ] || \
[ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" != "true" ]
then
exit
fi
# 1. Get the list of files to parse and send them through grep
# 2. Find any characters that aren't TAB, or space (0x20) to ~ (0x7F)
# LF (0x10) isn't included, as it ends the grep line
# 3. Remove common phrases and names that have been found
# 4. Run the result through grep again to highlight the issues that were
# found. Without this step, the characters can be difficult to see.
# shellcheck disable=SC2046
git grep -lP "[^\t-~]" | \
grep "$INCLUDED_FILES" | \
grep -v "$EXCLUDED_DIRS" | \
grep -v "$EXCLUDED_FILES" | \
xargs -I % \
grep -n "[^ -~]" % | \
grep -iv "$EXCLUDED_PHRASES" | \
grep --color='auto' "[^ -~]"