#!/bin/bash
set -euo pipefail

# Env vars with default values
SKIP_LINT=${SKIP_LINT:-0}
TEST_ARGS=${TEST_ARGS:--v}
COV_REPORT=${COV_REPORT:-term}

if [ "${SKIP_LINT}" -eq 0 ]; then
  echo "Running linter..."
  flake8 src/ tests/ || { echo "Linting failed!"; exit 1; }
  echo "Linting passed!"
else
  echo "Skipping linting as per configuration."
fi

echo "Running tests..."
if [ "${COV_REPORT}" != "OFF" ]; then
  python3 -m pytest ${TEST_ARGS} --cov=src --cov-report=${COV_REPORT} tests/
else
  python3 -m pytest ${TEST_ARGS} tests/
fi

EXIT_CODE=$?

if [ ${EXIT_CODE} -eq 0 ]; then
  echo "Tests passed!"
else
  echo "Tests failed!"
fi

exit ${EXIT_CODE}
