- Writing custom git flow scripts - a start

This commit is contained in:
Josako
2025-12-11 09:27:21 +01:00
parent 0f8bda0aef
commit fe9fc047ff
14 changed files with 720 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
from __future__ import annotations
import sys
class _Colors:
RESET = "\033[0m"
BOLD = "\033[1m"
RED = "\033[31m"
GREEN = "\033[32m"
YELLOW = "\033[33m"
BLUE = "\033[34m"
def _print(message: str, *, prefix: str = "", color: str | None = None, stream=None) -> None:
if stream is None:
stream = sys.stdout
text = f"{prefix} {message}" if prefix else message
if color:
text = f"{color}{text}{_Colors.RESET}"
print(text, file=stream)
def info(message: str) -> None:
_print(message, prefix="", color=_Colors.BLUE)
def success(message: str) -> None:
_print(message, prefix="", color=_Colors.GREEN)
def warning(message: str) -> None:
_print(message, prefix="⚠️", color=_Colors.YELLOW, stream=sys.stderr)
def error(message: str) -> None:
_print(message, prefix="", color=_Colors.RED, stream=sys.stderr)
def heading(message: str) -> None:
_print(message, prefix="", color=_Colors.BOLD)
def plain(message: str) -> None:
_print(message)
class Notifier:
"""Abstractielaag voor toekomstige auditieve output.
Voor nu enkel console-notificaties; later kan dit uitgebreid
worden met TTS, systeemmeldingen, ...
"""
@staticmethod
def notify_event(event: str, detail: str | None = None) -> None: # pragma: no cover - placeholder
if detail:
info(f"[{event}] {detail}")
else:
info(f"[{event}]")