diff options
-rwxr-xr-x | share/aux-repo/tests/assert-clean.sh | 42 | ||||
-rwxr-xr-x | share/aux-repo/tests/assert-shellcheck.sh | 6 |
2 files changed, 48 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 diff --git a/share/aux-repo/tests/assert-shellcheck.sh b/share/aux-repo/tests/assert-shellcheck.sh new file mode 100755 index 0000000..322a508 --- /dev/null +++ b/share/aux-repo/tests/assert-shellcheck.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -eu + +git ls-files | + grep '\.sh$' | + xargs shellcheck |