#!/usr/bin/env python3
import sys
from io import StringIO
import glob
import os

from pylint.lint import Run


for source in (
    glob.glob("ldc/lisa/*/*.py")
    + glob.glob("ldc/waveform/waveform/*.py")
    + glob.glob("ldc/common/*/*.py")
    + glob.glob("ldc/io/*/*.py")
    + glob.glob("ldc/utils/*/*.py")
):

    if os.path.basename(source) == "__init__.py":
        continue

    print(f"Checking file {source}", flush=True)

    stdout = sys.stdout
    sys.stdout = StringIO()

    # Run(['--errors-only', 'ldc/lisa/noise/noise.py', '--rcfile=.pylintrc'])
    out = Run([source, "--rcfile=.pylintrc"], exit=False)
    out = sys.stdout.getvalue()
    sys.stdout.close()
    sys.stdout = stdout

    print(out)

    score = float(out.split("Your code has been rated at ")[-1].split("/")[0])
    print(score)
    if score < 5:
        exit(-1)
