12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/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
|