diff --git a/.github/.cspell/rust-dependencies.txt b/.github/.cspell/rust-dependencies.txt index 48f1cbfc..d97977e3 100644 --- a/.github/.cspell/rust-dependencies.txt +++ b/.github/.cspell/rust-dependencies.txt @@ -1,8 +1,4 @@ // This file is @generated by tidy.sh. // It is not intended for manual editing. -anyhow -json -semver -serde ureq diff --git a/tools/tidy.sh b/tools/tidy.sh index 18d4a9f8..a0500f51 100755 --- a/tools/tidy.sh +++ b/tools/tidy.sh @@ -145,24 +145,36 @@ fi # Spell check (if config exists) if [[ -f .cspell.json ]]; then if type -P npm &>/dev/null; then - if [[ -f Cargo.toml ]]; then - metadata=$(cargo metadata --format-version=1 --all-features --no-deps) + if [[ -n "$(git ls-files '*Cargo.toml')" ]]; then dependencies='' - for id in $(jq <<<"${metadata}" '.workspace_members[]'); do - dependencies+=$'\n' - dependencies+=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name') + for manifest_path in $(git ls-files '*Cargo.toml'); do + if [[ "${manifest_path}" != "Cargo.toml" ]] && ! grep -Eq '\[workspace\]' "${manifest_path}"; then + continue + fi + metadata=$(cargo metadata --format-version=1 --all-features --no-deps --manifest-path "${manifest_path}") + for id in $(jq <<<"${metadata}" '.workspace_members[]'); do + dependencies+=$'\n' + dependencies+=$(jq <<<"${metadata}" ".packages[] | select(.id == ${id})" | jq -r '.dependencies[].name') + done done - cat >.github/.cspell/rust-dependencies.txt </dev/null | (grep -v -E '/(project-dictionary|rust-dependencies)\.txt' || true) | grep -Eq "^${word} \* [0-9A-Za-z_-]+\* "; then + words+=$'\n' + words+="${word}" + fi + done + fi + cat >.github/.cspell/rust-dependencies.txt <>.github/.cspell/rust-dependencies.txt - check_diff .github/.cspell/rust-dependencies.txt - else - touch .github/.cspell/rust-dependencies.txt + if [[ -n "${words:-}" ]]; then + echo "${words}" >>.github/.cspell/rust-dependencies.txt fi + check_diff .github/.cspell/rust-dependencies.txt echo "+ npx cspell --no-progress \$(git ls-files)" npx cspell --no-progress $(git ls-files)