import re
import subprocess

from utils import (
    colors,
    status_indicators,
)

BASH_PATH: str = fr"{colors.CYAN}{colors.BOLD}\w"
POINTER: str = f"{colors.YELLOW}-> {colors.RESET}"


def prompt() -> None:
    git_status: subprocess.CompletedProcess[str] = subprocess.run(
        ['git', 'status'],
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        text=True,
    )

    if not git_status.stderr.strip():
        git_branch: str = re.findall( r'([a-zA-Z0-9-\/()]+)', git_status.stdout.strip())[2]

        for key in status_indicators.keys():
            if key in git_status.stdout.strip():
                color: str = status_indicators[key]['color']
                icon: str = status_indicators[key]['icon']

                git_branch_color: str = f"{color}({git_branch}{icon})"
                print(f"{BASH_PATH} {git_branch_color} {POINTER}")
                exit(0)

    print(f"{BASH_PATH} {POINTER}")
    exit(0)


def main():
    prompt()


if __name__ == '__main__':
    main()
