- Writing custom git flow scripts - a start
This commit is contained in:
61
scripts/git/core/output.py
Normal file
61
scripts/git/core/output.py
Normal 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}]")
|
||||
|
||||
Reference in New Issue
Block a user