|
31 | 31 | # ───────────────────────────────────────────── |
32 | 32 |
|
33 | 33 | class log: |
| 34 | + # Stash plugin log protocol (from stash/pkg/plugin/common/log): |
| 35 | + # Each line on stderr: SOH () + level letter + STX () + message |
| 36 | + # Level letters: t=trace, d=debug, i=info, w=warning, e=error, p=progress |
| 37 | + TRACE = "t" |
| 38 | + DEBUG = "d" |
| 39 | + INFO = "i" |
| 40 | + WARNING = "w" |
| 41 | + ERROR = "e" |
| 42 | + PROGRESS = "p" |
| 43 | + |
34 | 44 | @staticmethod |
35 | 45 | def _emit(level: str, msg: str): |
36 | 46 | print(f"{level}{msg}", file=sys.stderr, flush=True) |
37 | 47 |
|
38 | 48 | @staticmethod |
39 | | - def trace(msg): log._emit("2TRACE:", msg) |
| 49 | + def trace(msg): log._emit(log.TRACE, msg) |
40 | 50 | @staticmethod |
41 | | - def debug(msg): log._emit("2DEBUG:", msg) |
| 51 | + def debug(msg): log._emit(log.DEBUG, msg) |
42 | 52 | @staticmethod |
43 | | - def info(msg): log._emit("2INFO:", msg) |
| 53 | + def info(msg): log._emit(log.INFO, msg) |
44 | 54 | @staticmethod |
45 | | - def warning(msg): log._emit("2WARNING:", msg) |
| 55 | + def warning(msg): log._emit(log.WARNING, msg) |
46 | 56 | @staticmethod |
47 | | - def error(msg): log._emit("2ERROR:", msg) |
| 57 | + def error(msg): log._emit(log.ERROR, msg) |
48 | 58 | @staticmethod |
49 | 59 | def progress(pct: float): |
50 | | - # pct is 0.0 – 1.0; Stash renders this as the task progress bar |
51 | | - log._emit("2PROGRESS:", f"{pct:.3f}") |
| 60 | + log._emit(log.PROGRESS, f"{pct:.3f}") |
52 | 61 |
|
53 | 62 |
|
54 | 63 | # ───────────────────────────────────────────── |
|
0 commit comments