#!/usr/bin/env bash set -Eeuo pipefail HTML_DIR="${1:-}" [[ -z "${HTML_DIR}" ]] && { echo 'Undefined input HTML_DIR.' >&2 exit 2 } # Required by =sort= and =hunspell= export LANG=C.UTF-8 for DICT in spelling/*.txt; do diff <(sort "$DICT") "$DICT" || { echo "The $DICT dictionary is unsorted. To fix it, run:" >&2 echo " LANG=C.UTF-8 sort $DICT | sponge $DICT" >&2 exit 1 } done finish() { rm -f spelling.txt rm -f dicts.txt } trap finish EXIT cat spelling/*.txt > dicts.txt find "${HTML_DIR}" -type f -name '*.html' | grep -v pastebin | hunspell -l -p dicts.txt -d fr_FR -d en_US -i utf-8 >> spelling.txt if [[ -s spelling.txt ]]; then printf "\nvvv Mispelled words detected by hunspell.\n\n" >&2 sort < spelling.txt | uniq >&2 printf "\n^^^\n" >&2 exit 1 else echo "No words mispelled" >&2 fi