41 lines
1.5 KiB
Bash
Executable File
41 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# CHECK-q116: grade Q116 -- no career-lane/ cell quotes OpenTrain's
|
|
# `validThrough` as an expiry or a remaining-days count.
|
|
#
|
|
# Two legs, both run here: `--selftest` (the scanner's own cells, no repo
|
|
# needed) and the repo scan (career-lane/ + the Q116 addendum grant it reads
|
|
# from WORK-QUEUE.md). The scan prints every exemption with the record that
|
|
# grants it, so a marker that exempts too much is a reading a human can
|
|
# overturn rather than a silence.
|
|
#
|
|
# Exit codes follow the repo's tools/ contract:
|
|
# 0 = the grep half holds and the cells pass
|
|
# 1 = a graded fault (a live deadline quote, or a failing cell)
|
|
# 2 = could not grade (no python3, no career-lane/, no queue, no cells)
|
|
#
|
|
# Paths resolve from this file's own location, so a clone grades its own tree.
|
|
set -u
|
|
set -o pipefail
|
|
HERE="$(dirname "$(readlink -f "$0")")"
|
|
|
|
if ! command -v python3 >/dev/null 2>&1; then
|
|
echo "CHECK: python3 not on PATH -- cannot grade." >&2
|
|
exit 2
|
|
fi
|
|
|
|
python3 "$HERE/opentrain_deadline_audit.py" --selftest >/tmp/.q116-cells.out 2>&1
|
|
rc=$?
|
|
tail -1 /tmp/.q116-cells.out
|
|
case $rc in
|
|
0) ;;
|
|
1) echo "CHECK: cells failed -- see /tmp/.q116-cells.out" >&2; exit 1 ;;
|
|
*) echo "CHECK: cells could not run (rc $rc)." >&2; exit 2 ;;
|
|
esac
|
|
|
|
python3 "$HERE/opentrain_deadline_audit.py"
|
|
case $? in
|
|
0) echo "CHECK: q116 grep half holds."; exit 0 ;;
|
|
1) echo "CHECK: live deadline quote in career-lane/ -- see the list above." >&2; exit 1 ;;
|
|
*) echo "CHECK: scan could not grade -- see the message above." >&2; exit 2 ;;
|
|
esac
|