123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/bin/bash
- set -eu -o pipefail
- top_dir="$(readlink -m "${BASH_SOURCE[0]}/../..")"
- # Also allow operation on a copy named ${orig_top_dir}.clean-check.${something}
- # I.e., .../graphene.clean-check.test/Scripts/clean-check will check:
- # .../graphene.clean-check.test against .../graphene.clean-check.clean
- clean_dir="${top_dir%.clean-check.*}.clean-check.clean"
- if [ -n "${JENKINS_HOME:-}" ]; then
- clean_dir="/tmp/$(basename "$clean_dir")"
- fi
- show_diff=false
- if [ "${1:-}" == "--show-diff" ]; then
- show_diff=true
- fi
- if ! [ -d "$clean_dir" ]; then
- echo "ERROR: Copy of clean source directory not found!"
- echo
- echo "You need to call clean-check-prepare on the clean source directory before using"
- echo "clean-check."
- exit 1
- fi
- trap 'rm -rf "$diff"' EXIT
- diff="$(mktemp)"
- if [ "$show_diff" == true ]; then
- diff_opts="-u"
- else
- diff_opts="-q"
- fi
- ok=true
- diff "$diff_opts" -x .git -r "$clean_dir" "$top_dir" > "$diff" || ok=false
- if [ "$ok" == true ]; then
- echo "Source tree is unchanged. :]"
- exit 0
- fi
- echo "================================================================================"
- echo " ERROR: Source tree is not unchanged after clean:"
- echo "--------------------------------------------------------------------------------"
- cat "$diff"
- echo "================================================================================"
- exit 1
|