12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/usr/bin/env bash
- set -e
- SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- source "${SCRIPTDIR}/.validate"
- tidy_files=('vendor.mod' 'vendor.sum')
- vendor_files=("${tidy_files[@]}" 'vendor/')
- validate_vendor_tidy() {
- # run mod tidy
- ./hack/vendor.sh tidy
- # check if any files have changed
- git diff --quiet HEAD -- "${tidy_files[@]}"
- }
- validate_vendor_diff() {
- mapfile -t changed_files < <(validate_diff --diff-filter=ACMR --name-only -- "${vendor_files[@]}")
- if [ -n "${TEST_FORCE_VALIDATE:-}" ] || [ "${#changed_files[@]}" -gt 0 ]; then
- # recreate vendor/
- ./hack/vendor.sh vendor
- # check if any files have changed
- git diff --quiet HEAD -- "${vendor_files[@]}"
- else
- echo >&2 'INFO: no vendor changes in diff; skipping vendor check.'
- fi
- }
- validate_vendor_license() {
- while IFS= read -r module; do
- test -d "vendor/$module" || continue
- if ! compgen -G "vendor/$module/*" | grep -qEi '/(LICENSE|COPYING)[^/]*$'; then
- echo >&2 "WARNING: could not find copyright information for $module"
- fi
- done < <(awk '/^# /{ print $2 }' vendor/modules.txt)
- }
- if validate_vendor_tidy && validate_vendor_diff && validate_vendor_license; then
- echo >&2 'PASS: Vendoring has been performed correctly!'
- else
- {
- echo 'FAIL: Vendoring was not performed correctly!'
- echo
- echo 'The following files changed during re-vendor:'
- echo
- git diff --name-status HEAD -- "${vendor_files[@]}"
- echo
- echo 'Please revendor with hack/vendor.sh'
- echo
- git diff --diff-filter=M -- "${vendor_files[@]}"
- } >&2
- exit 1
- fi
|