#!/usr/bin/env bash
set +e

REAL="/usr/local/bin/router-run.real"
SAN="/usr/local/bin/router-sanitize"

out="$(mktemp)"
err="$(mktemp)"

cleanup() {
  rm -f "$out" "$err"
}
trap cleanup EXIT

"$REAL" "$@" >"$out" 2>"$err"
rc=$?

run_dirs="$(
  {
    grep -E '^- run_dir: /' "$out" 2>/dev/null
    grep -E '^- run_dir: /' "$err" 2>/dev/null
  } | sed -E 's/^[- ]*run_dir:[[:space:]]*//g' | sort -u
)"

for d in $run_dirs; do
  if [ -d "$d" ]; then
    find "$d" -maxdepth 1 -type f \( -name '*.md' -o -name '*.txt' -o -name '*.log' -o -name '*.json' -o -name '*.sh' \) -print0 2>/dev/null \
      | while IFS= read -r -d '' f; do
          tmp="${f}.sanitize.$$"
          "$SAN" < "$f" > "$tmp" && mv "$tmp" "$f"
        done
  fi
done

"$SAN" < "$out"
if [ -s "$err" ]; then
  "$SAN" < "$err" >&2
fi

exit "$rc"
