#!/usr/bin/env python3
"""
build8bp - CLI para compilar proyectos 8BP (8 Bits de Poder)
"""

import click
from rich.console import Console
from rich.text import Text

from .commands import compile, patch, rollback

console = Console()


def print_help():
    console.print("\n[bold yellow]Uso:[/bold yellow]")
    console.print("  build8bp [OPTIONS] COMMAND [ARGS]...\n")
    

    console.print(Text("build8bp - Compilador para proyectos 8BP (8 Bits de Poder) en Amstrad CPC", style="bold green"))

    console.print("[bold yellow]Opciones:[/bold yellow]")
    console.print("  --version  Muestra la versión y sale.")
    console.print("  --help     Muestra este mensaje de ayuda y sale.\n")
    console.print("[bold yellow]Comandos:[/bold yellow]")
    console.print("  compile    Compilar proyecto 8BP con nivel de build especificado.")
    console.print("  patch      Aplicar parches de sintaxis para ABASM a los archivos ASM.")
    console.print("  rollback   Restaurar archivos ASM desde los backups.\n")


class RichGroup(click.Group):
    def format_help(self, ctx, formatter):
        print_help()


@click.group(cls=RichGroup, invoke_without_command=True)
@click.version_option(version="0.1.0")
@click.pass_context
def main(ctx):
    if not ctx.invoked_subcommand:
        print_help()


# Registrar comandos
main.add_command(compile)
main.add_command(patch)
main.add_command(rollback)


if __name__ == '__main__':
    main()

