#!/bin/sh # Copyright (c) 2024 DTB # SPDX-License-Identifier: FSFAP # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice and this # notice are preserved. This file is offered as-is, without any warranty. .PRAGMA: command_comment .PHONY: scrut_tests scrut_tests: scrut_help scrut_options .PHONY: scrut_help scrut_help: $(BIN)/scrut ! $(BIN)/scrut -h .PHONY: scrut_options # scrut tests file attributes, but files of a certain attribute aren't # guaranteed to be present on a system. This test checks all of the files in # harakit and, if test(1p) says a file matches a certain attribute, then checks # scrut. # opts are space-delimited (for command splitting), sel is not scrut_options: $(BIN)/scrut set -e; \ opts="b c d e f g k p r s u w x L S"; \ sel=; \ find . -name .git -prune -o -print \ | while read -r f; do \ for opt in $$opts; \ do if ! printf "%s\n" $$sel | grep $$opt >/dev/null; then \ if test -$$opt "$$f"; then \ if ! $(BIN)/scrut -$$opt "$$f"; \ then printf "[!!] scrut -%s failed on %s.\n" \ $$opt "$$f"; \ fi; \ sel="$$sel$$opt"; \ printf "[OK] Tested scrut -%s using %s\n" \ $$opt "$$f"; \ fi; \ fi; \ done; \ if printf "%s\n" "$$opts" | sed 's/ //g' | xargs test "$$sel" =; \ then break; \ fi; \ done