#!/usr/bin/env bash
#
# Copyright (C) 2023,2024 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

set -e

fail()
{
    message="$1"

    printf "[ !! ] scripts/checkpatch.scm test failed: %s\n" \
	   "${message}"
}

printf "+--------------------------------------+\n"
printf "| Running scripts/checkpatch.scm test: |\n"
printf "+--------------------------------------+\n"

topdir="$(dirname "$(dirname "$(realpath "$0")")")"
tmpdir="$(mktemp -d)"

test -f "${topdir}"/scripts/checkpatch.scm || fail "checkpatch.scm not found."
test -f "${topdir}"/resources/git/git || fail "resources/git/git not found."

patches="$("${topdir}"/resources/git/git format-patch --root -o "${tmpdir}")"
# shellcheck disable=SC2086

"${topdir}"/scripts/checkpatch.scm ${patches}

rm -rf "${tmpdir}"

printf "+---------------------+\n"
printf "| Running tests done: |\n"
printf "+---------------------+\n"
