feat: START box for launch lines and blank line between boxes
This commit is contained in:
1 parent
e391138337
commit
ef0dc08bcd
2 files changed
+36
-16
No files matched your search
@@ -59,6 +59,18 @@ autoPriority.exe -dry-run
|
|||||||
|
|
||||||
Триггер игрового режима не дублируется в PROMOTE: его исход уже вписан в строку `GAME MODE ON` (`NORMAL -> HIGH`, `уже HIGH` или `в блоклисте`). Выключение режима — секция `GAME MODE OFF — восстановление`, восстановленные процессы идут в PROMOTE/DEMOTE как обычно.
|
Триггер игрового режима не дублируется в PROMOTE: его исход уже вписан в строку `GAME MODE ON` (`NORMAL -> HIGH`, `уже HIGH` или `в блоклисте`). Выключение режима — секция `GAME MODE OFF — восстановление`, восстановленные процессы идут в PROMOTE/DEMOTE как обычно.
|
||||||
|
|
||||||
|
Запуск программы оформлен отдельным боксом START:
|
||||||
|
|
||||||
|
```text
|
||||||
|
┌─ 04.10.2026 19:58:36 ─────────────────────────────
|
||||||
|
├ START
|
||||||
|
│ ├ started (mem=512MB, game-mem=2.0GB, interval=1m0s, dry-run=false)
|
||||||
|
│ └ own priority set to IDLE
|
||||||
|
└───────────────────────────────────────────────────
|
||||||
|
```
|
||||||
|
|
||||||
|
Боксы разделены пустой строкой.
|
||||||
|
|
||||||
Режим `-dry-run` помечает строки `(план)`.
|
Режим `-dry-run` помечает строки `(план)`.
|
||||||
|
|
||||||
## Ограничения
|
## Ограничения
|
||||||
|
|||||||
@@ -701,20 +701,12 @@ func (a *app) emitChange(hasGame bool, target uint32, detail string) {
|
|||||||
|
|
||||||
// flushScan выводит события одного скана одним боксом.
|
// flushScan выводит события одного скана одним боксом.
|
||||||
// Порядок групп строгий: PROMOTE -> DEMOTE -> SKIP -> BLOCK.
|
// Порядок групп строгий: PROMOTE -> DEMOTE -> SKIP -> BLOCK.
|
||||||
func (a *app) flushScan() {
|
type logGroup struct {
|
||||||
a.buffering = false
|
|
||||||
groups := []struct {
|
|
||||||
name string
|
name string
|
||||||
rows []string
|
rows []string
|
||||||
}{
|
}
|
||||||
{"PROMOTE", a.bufPromote},
|
|
||||||
{"DEMOTE", a.bufDemote},
|
func renderBox(head string, groups []logGroup) {
|
||||||
{"SKIP", a.bufSkip},
|
|
||||||
{"BLOCK", a.bufBlock},
|
|
||||||
}
|
|
||||||
head := a.gameHead
|
|
||||||
a.gameHead = ""
|
|
||||||
a.bufPromote, a.bufDemote, a.bufSkip, a.bufBlock = nil, nil, nil, nil
|
|
||||||
var lines []string
|
var lines []string
|
||||||
if head != "" {
|
if head != "" {
|
||||||
lines = append(lines, "├ "+head)
|
lines = append(lines, "├ "+head)
|
||||||
@@ -756,6 +748,21 @@ func (a *app) flushScan() {
|
|||||||
logRaw(line)
|
logRaw(line)
|
||||||
}
|
}
|
||||||
logRaw("└" + strings.Repeat("─", width-1))
|
logRaw("└" + strings.Repeat("─", width-1))
|
||||||
|
logRaw("")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *app) flushScan() {
|
||||||
|
a.buffering = false
|
||||||
|
head := a.gameHead
|
||||||
|
a.gameHead = ""
|
||||||
|
groups := []logGroup{
|
||||||
|
{"PROMOTE", a.bufPromote},
|
||||||
|
{"DEMOTE", a.bufDemote},
|
||||||
|
{"SKIP", a.bufSkip},
|
||||||
|
{"BLOCK", a.bufBlock},
|
||||||
|
}
|
||||||
|
a.bufPromote, a.bufDemote, a.bufSkip, a.bufBlock = nil, nil, nil, nil
|
||||||
|
renderBox(head, groups)
|
||||||
}
|
}
|
||||||
|
|
||||||
// handleTrigger проводит триггер через смену приоритета, но вместо
|
// handleTrigger проводит триггер через смену приоритета, но вместо
|
||||||
@@ -1088,8 +1095,8 @@ func main() {
|
|||||||
fmt.Fprintln(logFile, s)
|
fmt.Fprintln(logFile, s)
|
||||||
}
|
}
|
||||||
|
|
||||||
logf("autoPriority started (mem=%s, game-mem=%s, interval=%s, dry-run=%v)",
|
startRows := []string{fmt.Sprintf("started (mem=%s, game-mem=%s, interval=%s, dry-run=%v)",
|
||||||
formatMemSize(mem), formatMemSize(gameMem), *interval, *dryRun)
|
formatMemSize(mem), formatMemSize(gameMem), *interval, *dryRun)}
|
||||||
|
|
||||||
if !*dryRun {
|
if !*dryRun {
|
||||||
pid := uint32(os.Getpid())
|
pid := uint32(os.Getpid())
|
||||||
@@ -1099,11 +1106,12 @@ func main() {
|
|||||||
closeH(h)
|
closeH(h)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logf("warning: could not set own priority to IDLE: %v", err)
|
startRows = append(startRows, fmt.Sprintf("warning: could not set own priority to IDLE: %v", err))
|
||||||
} else {
|
} else {
|
||||||
logf("own priority set to IDLE")
|
startRows = append(startRows, "own priority set to IDLE")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
renderBox("", []logGroup{{"START", startRows}})
|
||||||
|
|
||||||
a := newApp(mem, gameMem, *dryRun)
|
a := newApp(mem, gameMem, *dryRun)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user