#!/usr/bin/env bash set -e usage(){ echo "usage: check_spelling.sh " 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