#!/bin/bash
#
# Run automated tests for the project.

set -euo pipefail

quiet=-q
hideok=
if command -v chronic > /dev/null
then
    hideok=chronic
fi

if [ "$#" -gt 0 ]
then
    case "$1" in
	verbose | -v | --verbose)
	    quiet=
	    hideok=
	    ;;
    esac
fi

got_cargo_cmd()
{
    cargo --list | grep " $1 " > /dev/null
}

cargo build --all-targets $quiet
got_cargo_cmd clippy && cargo clippy $quiet
got_cargo_cmd fmt && cargo fmt -- --check

sp-docgen summain.md -o summain.html
sp-docgen summain.md -o summain.pdf

sp-codegen summain.md -o test.py
rm -f test.log
$hideok python3 test.py --log test.log "$@"

echo "Everything seems to be in order."
