#!/usr/bin/env python3
import os
import sys


def main():
    exclude_dirs_flag = ""
    if not os.path.exists("setup.cfg"):
        exclude_dirs_flag = (
            "--exclude .git,__pycache__,docs/conf.py,old,build,dist,venv"
        )
    additional_flags_both_steps = "--count --statistics"
    additional_flags_first_step = "--select=E9,F63,F7,F82 --show-source"
    python_exe = ""
    if os.name == "nt":
        python_exe = "py -m"
    flake8_first_step_cmd = (
        f"{python_exe} flake8 . {additional_flags_both_steps} "
        f"{additional_flags_first_step} {exclude_dirs_flag}"
    )
    status = os.system(flake8_first_step_cmd)
    if os.name == "nt":
        if status != 0:
            print(f"Flake8 linter errors with status {status}")
    else:
        if os.WEXITSTATUS(status) != 0:
            print(f"Flake8 linter errors with status {status}")
            sys.exit(0)
    additional_flags_second_step = (
        '--exit-zero --max-complexity=10 --per-file-ignores="__init__.py:F401"'
    )
    if not os.path.exists("setup.cfg"):
        additional_flags_second_step += " --max-line-length=100"
    flake8_second_step_cmd = (
        f"{python_exe} flake8 . {additional_flags_both_steps}  {additional_flags_second_step}"
        f" {exclude_dirs_flag}"
    )
    os.system(flake8_second_step_cmd)


if __name__ == "__main__":
    main()