#!/bin/sh

set -eu

PORTSDIR=/usr/ports
PORT_DBDIR=/tmp/recovered-ports
RECOVERED=./recovered.tsv
FAILED=./validation-failed.tsv

printf 'origin\treason\n' > "${FAILED}"

awk -F '	' 'NR > 1 { print $1 }' "${RECOVERED}" |
while IFS= read -r origin
do
    printf '%s\n' "${origin}"

    if ! make -C "${PORTSDIR}/${origin}" \
        PORT_DBDIR="${PORT_DBDIR}" \
        BATCH=yes \
        showconfig >/dev/null 2>&1
    then
        printf '%s\tshowconfig failed\n' "${origin}" >> "${FAILED}"
    fi
done

count=$(awk 'NR > 1 { n++ } END { print n + 0 }' "${FAILED}")

echo "Validation failures: ${count}"

