35 lines
1.2 KiB
Bash
35 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Validate Research Packets and quarantine rejects.
|
|
#
|
|
# Intended host paths (adjust to your deployment):
|
|
# IN_DIR=/srv/localgpt/handoff/inbound-to-core (staging area from FETCH)
|
|
# QUAR_DIR=/srv/localgpt/handoff/quarantine
|
|
#
|
|
# In the repo skeleton (compose volumes):
|
|
# infra/volumes/handoff/inbound-to-core
|
|
# infra/volumes/handoff/quarantine
|
|
|
|
IN_DIR="${IN_DIR:-./infra/volumes/handoff/inbound-to-core}"
|
|
QUAR_DIR="${QUAR_DIR:-./infra/volumes/handoff/quarantine}"
|
|
VALIDATOR="${VALIDATOR:-./tools/validate_research_packet.py}"
|
|
|
|
mkdir -p "${IN_DIR}" "${QUAR_DIR}"
|
|
|
|
shopt -s nullglob
|
|
for f in "${IN_DIR}"/*.md; do
|
|
echo "Validating packet: ${f}"
|
|
if "${VALIDATOR}" "${f}" >/tmp/threegate_packet_validate.out 2>/tmp/threegate_packet_validate.err; then
|
|
echo "ACCEPT: ${f}"
|
|
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_packet_validate.out "${QUAR_DIR}/${stamp}-${base}/validator.out" || true
|
|
mv -- /tmp/threegate_packet_validate.err "${QUAR_DIR}/${stamp}-${base}/validator.err" || true
|
|
fi
|
|
done
|