| #!/usr/bin/env bash |
| |
| export SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| source "${SCRIPTDIR}/.validate" |
| |
| validate_vendor_diff(){ |
| IFS=$'\n' |
| files=( $(validate_diff --diff-filter=ACMR --name-only -- 'vendor.conf' 'vendor/' || true) ) |
| unset IFS |
| |
| if [ ${#files[@]} -gt 0 ]; then |
| # recreate vendor/ |
| vndr -whitelist=^archive/tar |
| # check if any files have changed |
| diffs="$(git status --porcelain -- vendor 2>/dev/null)" |
| if [ "$diffs" ]; then |
| { |
| echo 'The result of vndr differs' |
| echo |
| echo "$diffs" |
| echo |
| echo 'Please vendor your package with github.com/LK4D4/vndr.' |
| echo |
| } >&2 |
| false |
| else |
| echo 'Congratulations! All vendoring changes are done the right way.' |
| fi |
| else |
| echo 'No vendor changes in diff.' |
| fi |
| } |
| |
| # 1. make sure all the vendored packages are used |
| # 2. make sure all the packages contain license information (just warning, because it can cause false-positive) |
| validate_vendor_used() { |
| pkgs=$(mawk '/^[a-zA-Z0-9]/ { print $1 }' < vendor.conf) |
| for f in $pkgs; do |
| if ls -d vendor/$f > /dev/null 2>&1; then |
| found=$(find vendor/$f -iregex '.*LICENSE.*' -or -iregex '.*COPYRIGHT.*' -or -iregex '.*COPYING.*' | wc -l) |
| if [ $found -eq 0 ]; then |
| echo "WARNING: could not find copyright information for $f" |
| fi |
| else |
| echo "WARNING: $f is vendored but unused" |
| fi |
| done |
| } |
| |
| validate_vendor_diff |
| validate_vendor_used |