"""Módulo para criação de diretórios e configuração Git."""

import subprocess
from pathlib import Path
import click


def create_project_folder(project_name, verbose=False):
    """Cria a pasta do projeto no diretório atual do usuário."""
    current_dir = Path.cwd()
    project_path = current_dir / project_name

    project_path.mkdir(parents=True, exist_ok=True)

    if verbose:
        click.echo(f"[*] Pasta criada em: {project_path}")

    return project_path


def command_git(project_path, verbose=False):
    """Inicializa um repositório Git na pasta do projeto."""
    try:
        if verbose:
            click.echo("\n[*] Iniciando configuracao do Git...")
            click.echo(f"[*] Diretorio do projeto: {project_path}")

        git_init_result = subprocess.run(
            ['git', 'init'],
            cwd=str(project_path),
            capture_output=True,
            text=True
        )

        git_dir = project_path / '.git'
        success = git_dir.exists()

        if verbose:
            if success:
                click.echo("[OK] Repositorio Git criado com sucesso")
            else:
                click.echo("[ERRO] Falha: Pasta .git nao foi criada")

        if success:
            # Verifica se ja esta na branch main, senao renomeia
            branch_result = subprocess.run(
                ['git', 'branch', '--show-current'],
                cwd=str(project_path),
                capture_output=True,
                text=True
            )
            current_branch = branch_result.stdout.strip()

            if current_branch != 'main':
                subprocess.run(
                    ['git', 'branch', '-M', 'main'],
                    cwd=str(project_path),
                    capture_output=True,
                    text=True
                )
            if verbose:
                click.echo("[*] Branch 'main' configurado")

        return success

    except FileNotFoundError:
        if verbose:
            click.echo("[ERRO] Git nao encontrado. Certifique-se de que o Git esta instalado.")
        return False
    except Exception as e:
        if verbose:
            click.echo(f"[ERRO] Erro inesperado: {e}")
        return False
