#!/usr/bin/env bash set -euo pipefail # ensure dir cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." PROJ_ROOT="$(pwd)" NUM_JOBS=10 while getopts "j:" FLAG; do case "$FLAG" in j) NUM_JOBS="${OPTARG}" ;; *) echo "unknown flag: $FLAG" ;; esac done shift $((OPTIND-1)) if [ -z "${1:-}" ]; then SCHEMA="${PROJ_ROOT}/_build/docgen/emqx/schema-en.json" else SCHEMA="$(realpath "$1")" fi if ! [ -f "$SCHEMA" ]; then echo "Schema file $SCHEMA does not exist; did you forget to run 'make emqx{,-enterprise}' ?" exit 1 fi if [[ -t 1 ]]; then DOCKER_TERMINAL_OPT="-t" else DOCKER_TERMINAL_OPT="" fi set +e # shellcheck disable=SC2086 docker run --rm -i ${DOCKER_TERMINAL_OPT} --name spellcheck \ -v "${PROJ_ROOT}"/scripts/spellcheck/dicts:/dicts \ -v "$SCHEMA":/schema.json \ ghcr.io/emqx/emqx-schema-validate:0.5.1 -j "${NUM_JOBS}" /schema.json result="$?" if [ "$result" -eq 0 ]; then echo "Spellcheck OK" exit 0 fi echo "If this script finds a false positive (e.g. when it thinks that a protocol name is a typo)," echo "Add the word to dictionary in scripts/spellcheck/dicts" exit $result