| #!/usr/bin/env bash | |
| # Copyright (C) Viktor Szakats | |
| # | |
| # SPDX-License-Identifier: curl | |
| # Compare git repo files with tarball files and report a mismatch | |
| # after excluding exceptions. | |
| set -eu | |
| gitonly=".git* | |
| ^.* | |
| ^appveyor.* | |
| ^buildconf | |
| ^GIT-INFO.md | |
| ^README.md | |
| ^renovate.json | |
| ^REUSE.toml | |
| ^SECURITY.md | |
| ^LICENSES/* | |
| ^docs/examples/adddocsref.pl | |
| ^docs/THANKS-filter | |
| ^projects/Windows/* | |
| ^scripts/ciconfig.pl | |
| ^scripts/cijobs.pl | |
| ^scripts/contributors.sh | |
| ^scripts/contrithanks.sh | |
| ^scripts/delta | |
| ^scripts/installcheck.sh | |
| ^scripts/release-notes.pl | |
| ^scripts/singleuse.pl | |
| ^src/tool_hugehelp.c.cvs | |
| ^tests/CI.md" | |
| tarfiles="$(mktemp)" | |
| gitfiles="$(mktemp)" | |
| tar -tf "$1" \ | |
| | sed -E 's|^[^/]+/||g' \ | |
| | grep -v -E '(/|^)$' \ | |
| | sort > "${tarfiles}" | |
| git -C "${2:-.}" ls-files \ | |
| | grep -v -E "($(printf '%s' "${gitonly}" | tr $'\n' '|' | sed -e 's|\.|\\.|g' -e 's|\*|.+|g'))$" \ | |
| | sort > "${gitfiles}" | |
| dif="$(diff -u "${tarfiles}" "${gitfiles}" | tail -n +3 || true)" | |
| rm -rf "${tarfiles:?}" "${gitfiles:?}" | |
| echo 'Only in tarball:' | |
| echo "${dif}" | grep '^-' || true | |
| echo | |
| echo 'Missing from tarball:' | |
| if echo "${dif}" | grep '^+'; then | |
| exit 1 | |
| fi |