|
|
@ -0,0 +1,36 @@ |
|
|
|
#!/usr/bin/env bash |
|
|
|
|
|
|
|
set -e |
|
|
|
|
|
|
|
usage(){ |
|
|
|
echo "usage: check_spelling.sh <source directory>" |
|
|
|
exit 1 |
|
|
|
} |
|
|
|
|
|
|
|
start_dir=$(pwd) |
|
|
|
script_dir=$(dirname "$0") |
|
|
|
cd "$script_dir" |
|
|
|
|
|
|
|
target_dir="$1" |
|
|
|
source_dir="$2" |
|
|
|
|
|
|
|
cp .pyspelling.yml "$target_dir" |
|
|
|
|
|
|
|
cd "$target_dir" |
|
|
|
|
|
|
|
# Determine what to ignore |
|
|
|
find "$source_dir" -type f -name "*.rpy" | xargs grep -Eno "#ignorespelling" | sed -r -e "s=${source_dir}==" | awk 'BEGIN {FS=":"}; {printf "^%s:%s\n", $1, $2}' > ignore_directives |
|
|
|
|
|
|
|
# Find suspect words |
|
|
|
pyspelling -n renpy_dialogue -S dialogue.txt | tail -n+4 | head -n -3 > suspect_words |
|
|
|
|
|
|
|
# Print the suspect words |
|
|
|
awk 'BEGIN {FS="\t"}; {printf "%s:%s\t%s\n", $4, $5, $3}' < dialogue.tab | column -ts $'\t' > pretty_dialogue.tab |
|
|
|
echo "Ignored lines:" |
|
|
|
grep -f ignore_directives pretty_dialogue.tab | grep --color -w -f suspect_words |
|
|
|
printf "\nSuspected misspellings:\n" |
|
|
|
grep -v -f ignore_directives pretty_dialogue.tab | grep --color -w -f suspect_words |
|
|
|
|
|
|
|
cd "$start_dir" |
|
|
|
|
|
|
|
exit 0 |