#!/usr/bin/env bash # Fix common misspellings in text files (config: .codespellignore) # Based on # https://github.com/bitcoin/bitcoin/blob/master/test/lint/lint-spelling.sh # # We plan to replace this script with the `tools/lint` system as soon as we can. IGNORE_WORDS_FILE=.codespellignore if [ "$#" -eq 0 ]; then echo "No argument specified. Checking on the entire repo..." FILES_TO_BE_CHECKED="$( git ls-files -- \ ':!*.asc' \ ':!*.svg' \ ':!*/fixtures/*' \ ':!docs/THIRDPARTY' \ ':!docs/translating' \ ':!locale' \ ':!postgresql.conf.template.erb' \ ':!tools/setup/emoji/emoji_map.json' \ ':!tools/setup/emoji/emoji_names.py' \ ':!pnpm-lock.yaml' \ ':!zerver/management/data/unified_reactions.json' )" mapfile -t FILES_TO_BE_CHECKED <<<"$FILES_TO_BE_CHECKED" else FILES_TO_BE_CHECKED=("$@") echo "Checking ${FILES_TO_BE_CHECKED[*]@Q}" fi if ! codespell --ignore-words="$IGNORE_WORDS_FILE" -- "${FILES_TO_BE_CHECKED[@]}"; then echo "You may check the files for typo again using ./tools/run-codespell ... " exit 1 fi