diff options
author | EuAndreh <eu@euandre.org> | 2023-03-25 17:49:20 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2023-03-25 17:50:07 -0300 |
commit | 1c852fe2e0d22744ade72c2f2783093c3bd1fc95 (patch) | |
tree | 40aaad78d9252f7812dfe32df73188fff5664a4e | |
parent | share/aux-repo/: Add existing files AS-IS (diff) | |
download | dotfiles-1c852fe2e0d22744ade72c2f2783093c3bd1fc95.tar.gz dotfiles-1c852fe2e0d22744ade72c2f2783093c3bd1fc95.tar.xz |
share/aux-repo/: Add common test scripts
-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 |