From 148396081d8e3edde3a688e9c0a073d3dfa160d2 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Wed, 31 Dec 2025 10:55:16 -0500 Subject: [PATCH] Now clears the log when a new build starts. --- builder/build.go | 17 ++++++++++++++++- game/engine.go | 2 +- main.go | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/builder/build.go b/builder/build.go index eaef1c2..82520c7 100644 --- a/builder/build.go +++ b/builder/build.go @@ -29,6 +29,8 @@ type Builder struct { settings config.Config OnError ErrorHandler OnPass PassHandler + OnFail PassHandler + OnStart PassHandler BuildState int HadErrors bool @@ -41,6 +43,10 @@ func New(settings config.Config) (*Builder) { builder := new(Builder) builder.settings = settings + builder.OnError = func(data.ErrInfo){} + builder.OnPass = func(){} + builder.OnFail = func(){} + builder.OnStart = func(){} return builder } @@ -102,6 +108,14 @@ func (build *Builder) SetOnPass(passhandler PassHandler) { build.OnPass = passhandler } +func (build *Builder) SetOnFail(failhandler PassHandler) { + build.OnFail = failhandler +} + +func (build *Builder) SetOnStart(starthandler PassHandler) { + build.OnStart = starthandler +} + func (build *Builder) LaunchProcess(proc *config.Process) { proc.ExecCmd = exec.Command(proc.Command, proc.Args...) if errors.Is(proc.ExecCmd.Err, exec.ErrDot) { @@ -154,6 +168,7 @@ func (build *Builder) BeginBuild() bool { func (build *Builder) EndBuild() { if build.HadErrors { build.BuildState = FAILED + build.OnFail() } else { build.BuildState = PASSED build.OnPass() @@ -162,10 +177,10 @@ func (build *Builder) EndBuild() { func (build *Builder) RunBuild() { if build.BeginBuild() { + build.OnStart() defer build.EndBuild() Log.Println("CONFIG:", build.settings.ConfigPath) - Log.Println("COMMANDs:", build.settings.Processes) for name, proc := range build.settings.Processes { Log.Println("PROCESS:", name) diff --git a/game/engine.go b/game/engine.go index 2f19221..6c06494 100644 --- a/game/engine.go +++ b/game/engine.go @@ -35,7 +35,7 @@ func New(settings config.Config) *Game { return game } -func (game *Game) BuildPass() { +func (game *Game) ClearLog() { game.ErrorLog = game.ErrorLog[:0] } diff --git a/main.go b/main.go index d549e66..c269362 100644 --- a/main.go +++ b/main.go @@ -21,8 +21,8 @@ func main() { g.TakeHit(build, errinfo) }) - build.SetOnPass(func () { - g.BuildPass() + build.SetOnStart(func () { + g.ClearLog() }) go build.WatchDir()