diff --git a/implementation/auditing/audit_pipeline.sh b/implementation/auditing/audit_pipeline.sh new file mode 100644 index 0000000..55719be --- /dev/null +++ b/implementation/auditing/audit_pipeline.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -euo pipefail + +# VeriPath Audit Pipeline +# Usage: ./audit_pipeline.sh "Business Name" "City, ST" [output-dir] +# Sequence: multi_scraper.py → audit_engine.py → findings + report in target folder + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +BUSINESS="${1:?Usage: audit_pipeline.sh \"Business Name\" \"City, ST\" [output-dir]}" +LOCATION="${2:?Usage: audit_pipeline.sh \"Business Name\" \"City, ST\" [output-dir]}" +OUTPUT_DIR="${3:-}" + +# Temporary working dir for this run +WORK_DIR=$(mktemp -d /tmp/veripath.XXXXXX) +trap 'rm -rf "$WORK_DIR"' EXIT + +SCRAPER_OUT="$WORK_DIR/multi_surface.json" +ENGINE_ARGS=("--md") + +echo "[$(date +%T)] Scraping: $BUSINESS @ $LOCATION" + +# Step 1: Multi-surface extraction +uv run python3 "$SCRIPT_DIR/multi_scraper.py" "$BUSINESS" "$LOCATION" "$SCRAPER_OUT" +if [ ! -s "$SCRAPER_OUT" ]; then + echo "[FAIL] multi_scraper.py produced no output" >&2 + exit 1 +fi +echo "[OK] Extraction complete: $SCRAPER_OUT" + +# Step 2: Audit engine +if [ -n "$OUTPUT_DIR" ]; then + mkdir -p "$OUTPUT_DIR" + ENGINE_ARGS+=("--output-dir" "$OUTPUT_DIR") + echo "[$(date +%T)] Auditing (output: $OUTPUT_DIR)" + uv run python3 "$SCRIPT_DIR/audit_engine.py" "$SCRAPER_OUT" "${ENGINE_ARGS[@]}" + echo "[DONE] Findings written to $OUTPUT_DIR/" +else + echo "[$(date +%T)] Auditing (stdout)" + uv run python3 "$SCRIPT_DIR/audit_engine.py" "$SCRAPER_OUT" "${ENGINE_ARGS[@]}" +fi