ThreeGate/tools/validate_and_quarantine_too...

27 lines
1012 B
Bash

#!/usr/bin/env bash
set -euo pipefail
RES_DIR="${RES_DIR:-./infra/volumes/tool-exec/results_out}"
CORE_IN_DIR="${CORE_IN_DIR:-./infra/volumes/handoff/inbound-to-core}"
QUAR_DIR="${QUAR_DIR:-./infra/volumes/handoff/quarantine}"
VALIDATOR="${VALIDATOR:-./tools/validate_tool_result.py}"
mkdir -p "${RES_DIR}" "${CORE_IN_DIR}" "${QUAR_DIR}"
shopt -s nullglob
for f in "${RES_DIR}"/*.md; do
echo "Validating tool result: ${f}"
if "${VALIDATOR}" "${f}" >/tmp/threegate_toolres_validate.out 2>/tmp/threegate_toolres_validate.err; then
echo "ACCEPT -> CORE inbound: ${f}"
mv -- "${f}" "${CORE_IN_DIR}/"
else
echo "REJECT: ${f}"
base="$(basename "${f}")"
stamp="$(date -u +%Y%m%d-%H%M%SZ)"
mkdir -p "${QUAR_DIR}/${stamp}-${base}"
mv -- "${f}" "${QUAR_DIR}/${stamp}-${base}/"
mv -- /tmp/threegate_toolres_validate.out "${QUAR_DIR}/${stamp}-${base}/validator.out" || true
mv -- /tmp/threegate_toolres_validate.err "${QUAR_DIR}/${stamp}-${base}/validator.err" || true
fi
done