"""
Módulo para realizar o release automático baseado no CHANGELOG.md.

Este módulo fornece funções para varrer o CHANGELOG.md do projeto e efetuar o release automático, atualizando a versão
do projeto e realizando as etapas necessárias para o release. Ele é projetado para ser usado em conjunto com o GitLab
CI/CD, permitindo que o release seja realizado de forma automatizada e controlada. O release automático é acionado
através do comando `python3 senior-ci/src/datalake/deploy/release.py -r`, que deve ser incluído no pipeline do GitLab
CI/CD.

"""

from __future__ import annotations

import argparse

from common import print_message
from src.datalake.commons.version_utils import release_project_version


def main() -> int:
    parser = argparse.ArgumentParser(description="Data CI main")
    parser.add_argument("-r", dest="release", action="store_true")
    args = parser.parse_args()

    try:
        if args.release:
            release_project_version()
        else:
            parser.print_help()
            return 2
    except Exception as exc:
        print_message(str(exc))
        return 2

    return 0


if __name__ == "__main__":
    raise SystemExit(main())
