feat: closed box with right wall and padded rows

This commit is contained in:
lzrdblzzrd committed 2026-10-04 20:10:09 +03:00
1 parent ef0dc08bcd
commit c0a47bc99b
2 files changed
+25 -26

No files matched your search

+18 -18
View File
@@ -42,19 +42,19 @@ autoPriority.exe -dry-run
События одного скана выводятся боксом во временной папке Windows: **`%TEMP%\autopriority.log`**. При каждом запуске файл очищается. Шапка подгоняется под самую длинную строку. Порядок групп строгий: PROMOTE -> DEMOTE -> SKIP -> BLOCK. Пустой скан ничего не пишет. События одного скана выводятся боксом во временной папке Windows: **`%TEMP%\autopriority.log`**. При каждом запуске файл очищается. Шапка подгоняется под самую длинную строку. Порядок групп строгий: PROMOTE -> DEMOTE -> SKIP -> BLOCK. Пустой скан ничего не пишет.
```text ```text
┌─ 04.10.2026 19:33:39 ───────────────────────────── ┌─ 04.10.2026 19:33:39 ───────────────────────────────────────────────┐
├ GAME MODE ON — EoCApp.exe (PID 6200) RSS=2.2GB, NORMAL -> HIGH ├ GAME MODE ON — EoCApp.exe (PID 6200) RSS=2.2GB, NORMAL -> HIGH │
│ │ │
├ DEMOTE ├ DEMOTE │
│ ├ Hermes.exe (PID 10220) RSS=166MB, ABOVE_NORMAL -> IDLE │ ├ Hermes.exe (PID 10220) RSS=166MB, ABOVE_NORMAL -> IDLE │
│ └ librewolf.exe (PID 6216) RSS=524MB, HIGH -> IDLE │ └ librewolf.exe (PID 6216) RSS=524MB, HIGH -> IDLE │
│ │ │
├ SKIP ├ SKIP │
│ └ csrss.exe (PID 524): OpenProcess(524) failed: Access is denied. │ └ csrss.exe (PID 524): OpenProcess(524) failed: Access is denied. │
│ │ │
├ BLOCK ├ BLOCK │
│ └ winlogon.exe (PID 792): OpenProcess(792) failed: Access is denied. │ └ winlogon.exe (PID 792): OpenProcess(792) failed: Access is denied.│
└─────────────────────────────────────────────────── └─────────────────────────────────────────────────────────────────────┘
``` ```
Триггер игрового режима не дублируется в PROMOTE: его исход уже вписан в строку `GAME MODE ON` (`NORMAL -> HIGH`, `уже HIGH` или `в блоклисте`). Выключение режима — секция `GAME MODE OFF — восстановление`, восстановленные процессы идут в PROMOTE/DEMOTE как обычно. Триггер игрового режима не дублируется в PROMOTE: его исход уже вписан в строку `GAME MODE ON` (`NORMAL -> HIGH`, `уже HIGH` или `в блоклисте`). Выключение режима — секция `GAME MODE OFF — восстановление`, восстановленные процессы идут в PROMOTE/DEMOTE как обычно.
@@ -62,11 +62,11 @@ autoPriority.exe -dry-run
Запуск программы оформлен отдельным боксом START: Запуск программы оформлен отдельным боксом START:
```text ```text
┌─ 04.10.2026 19:58:36 ───────────────────────────── ┌─ 04.10.2026 19:58:36 ──────────────────────────────────────────────┐
├ START ├ START │
│ ├ started (mem=512MB, game-mem=2.0GB, interval=1m0s, dry-run=false) │ ├ started (mem=512MB, game-mem=2.0GB, interval=1m0s, dry-run=false)│
│ └ own priority set to IDLE │ └ own priority set to IDLE │
└─────────────────────────────────────────────────── └────────────────────────────────────────────────────────────────────┘
``` ```
Боксы разделены пустой строкой. Боксы разделены пустой строкой.
+7 -8
View File
@@ -737,17 +737,16 @@ func renderBox(head string, groups []logGroup) {
} }
} }
ts := time.Now().Format("02.01.2006 15:04:05") ts := time.Now().Format("02.01.2006 15:04:05")
top := "┌─ " + ts + " " base := "┌─ " + ts + " "
if runeCount(top) < width { if width < runeCount(base) {
top += strings.Repeat("─", width-runeCount(top)) width = runeCount(base)
} else {
width = runeCount(top)
} }
logRaw(top) // Закрытый бокс: правая стенка у каждой строки.
logRaw(base + strings.Repeat("─", width-runeCount(base)) + "┐")
for _, line := range lines { for _, line := range lines {
logRaw(line) logRaw(line + strings.Repeat(" ", width-runeCount(line)) + "│")
} }
logRaw("└" + strings.Repeat("─", width-1)) logRaw("└" + strings.Repeat("─", width-1) + "┘")
logRaw("") logRaw("")
} }