Created
April 26, 2020 23:05
-
-
Save jsigee87/e78a80d7c1595efb9854d003abdb3ab7 to your computer and use it in GitHub Desktop.
Script to find todo and fixme statements
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Who am I | |
###################################################################### | |
MYFILENAME="todo-linter.sh" | |
if [ $# -eq 0 ] || [ $# -gt 1 ]; | |
then | |
echo "Usage:" | |
echo " bash ${MYFILENAME} [file or filepath]" | |
echo "You may pass a single file or a filepath. The script will recursively check subdirectories." | |
exit 1 | |
fi | |
search_path=$1 | |
keywords="TODO|FIXME" | |
# 1. Find all files ending with .py or .sh excepting .env/ directories and | |
# print their contents. | |
# 2. For all of the contents, grep for the keyword in a case insensitive manner, using | |
# the options listed. | |
# 3. Pipe into perl and insert the warning command. | |
###################################################################### | |
find "${search_path}" \( -name "*.py" -or -name ".sh" \) -not -path "*.env*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching --ignore-case --no-messages "($keywords).*\$" | perl -p -e "s/($keywords)/ warning: \$1/i" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment