#!/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 / "sentence_stream"
_TESTS_DIR = _PROGRAM_DIR / "tests"

_LINT_DIRS = [_MODULE_DIR, _TESTS_DIR]

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"] + _LINT_DIRS + ["--check"])
subprocess.check_call([python_exe, "-m", "isort"] + _LINT_DIRS + ["--check"])
subprocess.check_call([python_exe, "-m", "flake8"] + _LINT_DIRS)
subprocess.check_call([python_exe, "-m", "pylint"] + _LINT_DIRS)
subprocess.check_call([python_exe, "-m", "mypy"] + _LINT_DIRS)
