From 76e1a0925fde2cbf25b75409cd353e20b9cfef48 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 1 Apr 2023 22:25:46 -0300 Subject: Revamp code under aux/ --- aux/workflow/repocheck.sh | 184 ---------------------------------------------- 1 file changed, 184 deletions(-) delete mode 100755 aux/workflow/repocheck.sh (limited to 'aux/workflow/repocheck.sh') diff --git a/aux/workflow/repocheck.sh b/aux/workflow/repocheck.sh deleted file mode 100755 index 688410a..0000000 --- a/aux/workflow/repocheck.sh +++ /dev/null @@ -1,184 +0,0 @@ -#!/bin/sh -set -eu - -if [ -n "${RECURSIVE_CHECK:-}" ]; then - exit -fi -export RECURSIVE_CHECK=true - -. aux/lib.sh - -REPODIR="$PWD" - -INSTALLCHECK=false -while getopts 'x:l:f:' flag; do - case "$flag" in - x) - EXECUTABLES="$OPTARG" - INSTALLCHECK=true - ;; - l) - SYMLINKS="$OPTARG" - INSTALLCHECK=true - ;; - f) - FILES="$OPTARG" - INSTALLCHECK=true - ;; - *) - exit 2 - ;; - esac -done -shift $((OPTIND - 1)) - -assert_no_diffs() { - if [ -n "$(git status -s)" ]; then - echo 'Repository left dirty.' >&2 - git status >&2 - exit 1 - fi -} - -assert_installed_files() { - if [ -n "${EXECUTABLES:-}" ]; then - ACTUAL="$(find "$1" -type f -perm -u=x | wc -l)" - if [ "$EXECUTABLES" != "$ACTUAL" ]; then - printf 'Expected %s executables, found %s:\n' \ - "$EXECUTABLES" "$ACTUAL" >&2 - echo "find $1 -type f -perm -u=x:" >&2 - find "$1" -type f -perm -u=x >&2 - exit 1 - fi - fi - - if [ -n "${SYMLINKS:-}" ]; then - ACTUAL="$(find "$1" -type l | wc -l)" - if [ "$SYMLINKS" != "$ACTUAL" ]; then - printf 'Expected %s symlinks, found %s:\n' \ - "$SYMLINKS" "$ACTUAL" >&2 - echo "find $1 -type l:" >&2 - find "$1" -type l >&2 - exit 1 - fi - fi - - if [ -n "${FILES:-}" ]; then - ACTUAL="$(find "$1" -type f | wc -l)" - if [ "$FILES" != "$ACTUAL" ]; then - printf 'Expected %s files, found %s:\n' \ - "$FILES" "$ACTUAL" >&2 - echo "find $1 -type f:" >&2 - find "$1" -type f >&2 - exit 1 - fi - fi -} - -assert_uninstalled_files() { - if [ "$(find "$1" \( -type f -o -type l \) | wc -l)" != 0 ]; then - echo 'Left-over files after uninstall' >&2 - echo "find $1 \( -type f -o -type l \):" - find "$1" \( -type f -o -type l \) - exit 1 - fi -} - -assert_install() { - if [ "$INSTALLCHECK" != 'true' ]; then - return - fi - - make clean - - echo 'Asserting "canonical" install path' >&2 - INSTALL1="$(mkdtemp)" - make PREFIX="$INSTALL1" - make check PREFIX="$INSTALL1" - make install PREFIX="$INSTALL1" - assert_installed_files "$INSTALL1" - make uninstall PREFIX="$INSTALL1" - assert_uninstalled_files "$INSTALL1" - - make clean - - echo 'Asserting "straigh-forward" install path' >&2 - INSTALL2="$(mkdtemp)" - make install PREFIX="$INSTALL2" - assert_installed_files "$INSTALL2" - make uninstall PREFIX="$INSTALL2" - assert_uninstalled_files "$INSTALL2" - - make clean - - echo 'Asserting "idempotent" install path' >&2 - INSTALL3="$(mkdtemp)" - make install PREFIX="$INSTALL3" - make install PREFIX="$INSTALL3" - assert_installed_files "$INSTALL3" - make uninstall PREFIX="$INSTALL3" - make uninstall PREFIX="$INSTALL3" - assert_uninstalled_files "$INSTALL3" - - make clean - - echo 'Asserting "destdir" install path' >&2 - DESTDIR="$(mkdtemp)" - INSTALL4="$(mkdtemp)" - make install DESTDIR="$DESTDIR" PREFIX="$INSTALL4" - assert_installed_files "$DESTDIR/$INSTALL4" - make uninstall DESTDIR="$DESTDIR" PREFIX="$INSTALL4" - assert_uninstalled_files "$DESTDIR/$INSTALL4" -} - -assert_clean_clone() { - CLONEDIR="$(mkdtemp)" - cd "$CLONEDIR" - - git clone "$REPODIR" . - - make clean public dev-check - assert_no_diffs - make clean - assert_no_diffs - - if [ -n "$(git clean -ffdx --dry-run)" ]; then - echo '"make clean" left files:' >&2 - git clean -ffdx --dry-run >&2 - echo "Clone directory: $CLONEDIR" >&2 - exit 1 - fi - - rm -rf aux/ - make clean check || { - echo 'Cannot run "make check" without "aux/".' >&2 - echo "Clone directory: $CLONEDIR" >&2 - exit 1 - } - - assert_install - - cd - > /dev/null -} - -assert_clean_checkout() { - CHECKOUTDIR="$(mkdtemp)" - git --work-tree="$CHECKOUTDIR" checkout HEAD -- . - cd "$CHECKOUTDIR" - - FILECOUNT="$(find . -type f | wc -l)" - make clean public dev-check - make clean - if [ "$FILECOUNT" != "$(find . -type f | wc -l)" ]; then - echo 'File count mismatch after "make clean".' >&2 - echo "Checkout directory: $CHECKOUTDIR" >&2 - exit 1 - fi - - assert_install - - cd - > /dev/null -} - -assert_clean_clone -assert_clean_checkout -- cgit v1.2.3