diff options
Diffstat (limited to 'share/aux-repo/tests/assert-clean.sh')
-rwxr-xr-x | share/aux-repo/tests/assert-clean.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/share/aux-repo/tests/assert-clean.sh b/share/aux-repo/tests/assert-clean.sh new file mode 100755 index 0000000..5050b53 --- /dev/null +++ b/share/aux-repo/tests/assert-clean.sh @@ -0,0 +1,42 @@ +#!/bin/sh +set -eu + +. src/development/lib.sh + +if [ -n "${RUNNING_ASSERT_CLEAN:-}" ]; then + exit +fi +export RUNNING_ASSERT_CLEAN=1 + +D="$(mkdtemp)" +trap 'rm -rf "$D"' EXIT +git clone . "$D" +cd "$D" + +assert_no_diffs() { + if [ -n "$(git status -s)" ]; then + { + printf 'Repository left dirty.\n' + git status + info + } >&2 + exit 1 + fi +} + +pre() { + sed 's|^|assert-clean: |' +} + +assert_no_diffs +make -e check-public 2>&1 | pre +make -e clean 2>&1 | pre +assert_no_diffs + +if [ -n "$(git clean -nffdx)" ]; then + { + printf '"make clean" left files:\n' + git clean -nffdx + } >&2 + exit 1 +fi |