#!/bin/bash -e

function check_readme() {
    perl -0777 -pe 's/.*## '"$3"'\n\n```rust\n(.*?)```.*/$1/s' $1 \
        | colordiff $2 - \
        || { printf "\n${RED}ERROR${RESET}: $3 in $1 differs from $2.\n"; exit 1; }
}

cd "$(dirname "$0")/.."

# Colors
RED="$(tput setaf 1)"
GREEN="$(tput setaf 2)"
RESET="$(tput sgr0)"

cargo fmt -- --check \
    || { printf "\n${RED}ERROR${RESET}: Must run \`cargo fmt\` before submitting.\n"; exit 1; }

cargo test

check_readme README.md tests/readme_usage.rs "Usage"

printf "\nPresubmits ${GREEN}PASSED${RESET}.\n"
