#!/usr/bin/env python3
import subprocess
import venv
from pathlib import Path

_DIR = Path(__file__).parent
_PROGRAM_DIR = _DIR.parent
_VENV_DIR = _PROGRAM_DIR / ".venv"
_MODULE_DIR = _PROGRAM_DIR / "unicode_rbnf"
_TESTS_DIR = _PROGRAM_DIR / "tests"
_TEST_FILES = [str(p) for p in _TESTS_DIR.glob("*.py")]

if _VENV_DIR.exists():
    context = venv.EnvBuilder().ensure_directories(_VENV_DIR)
    python_exe = context.env_exe
else:
    python_exe = "python3"

subprocess.check_call(
    [python_exe, "-m", "black", str(_MODULE_DIR)] + _TEST_FILES + ["--check"]
)
subprocess.check_call(
    [python_exe, "-m", "isort", str(_MODULE_DIR)] + _TEST_FILES + ["--check"]
)
subprocess.check_call([python_exe, "-m", "flake8", str(_MODULE_DIR)] + _TEST_FILES)
subprocess.check_call([python_exe, "-m", "pylint", str(_MODULE_DIR)] + _TEST_FILES)
subprocess.check_call([python_exe, "-m", "mypy", str(_MODULE_DIR)] + _TEST_FILES)
