Now clears the log when a new build starts.

master
Zed A. Shaw 2 weeks ago
parent c79fac58e2
commit 148396081d
  1. 17
      builder/build.go
  2. 2
      game/engine.go
  3. 4
      main.go

@ -29,6 +29,8 @@ type Builder struct {
settings config.Config settings config.Config
OnError ErrorHandler OnError ErrorHandler
OnPass PassHandler OnPass PassHandler
OnFail PassHandler
OnStart PassHandler
BuildState int BuildState int
HadErrors bool HadErrors bool
@ -41,6 +43,10 @@ func New(settings config.Config) (*Builder) {
builder := new(Builder) builder := new(Builder)
builder.settings = settings builder.settings = settings
builder.OnError = func(data.ErrInfo){}
builder.OnPass = func(){}
builder.OnFail = func(){}
builder.OnStart = func(){}
return builder return builder
} }
@ -102,6 +108,14 @@ func (build *Builder) SetOnPass(passhandler PassHandler) {
build.OnPass = 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) { func (build *Builder) LaunchProcess(proc *config.Process) {
proc.ExecCmd = exec.Command(proc.Command, proc.Args...) proc.ExecCmd = exec.Command(proc.Command, proc.Args...)
if errors.Is(proc.ExecCmd.Err, exec.ErrDot) { if errors.Is(proc.ExecCmd.Err, exec.ErrDot) {
@ -154,6 +168,7 @@ func (build *Builder) BeginBuild() bool {
func (build *Builder) EndBuild() { func (build *Builder) EndBuild() {
if build.HadErrors { if build.HadErrors {
build.BuildState = FAILED build.BuildState = FAILED
build.OnFail()
} else { } else {
build.BuildState = PASSED build.BuildState = PASSED
build.OnPass() build.OnPass()
@ -162,10 +177,10 @@ func (build *Builder) EndBuild() {
func (build *Builder) RunBuild() { func (build *Builder) RunBuild() {
if build.BeginBuild() { if build.BeginBuild() {
build.OnStart()
defer build.EndBuild() defer build.EndBuild()
Log.Println("CONFIG:", build.settings.ConfigPath) Log.Println("CONFIG:", build.settings.ConfigPath)
Log.Println("COMMANDs:", build.settings.Processes)
for name, proc := range build.settings.Processes { for name, proc := range build.settings.Processes {
Log.Println("PROCESS:", name) Log.Println("PROCESS:", name)

@ -35,7 +35,7 @@ func New(settings config.Config) *Game {
return game return game
} }
func (game *Game) BuildPass() { func (game *Game) ClearLog() {
game.ErrorLog = game.ErrorLog[:0] game.ErrorLog = game.ErrorLog[:0]
} }

@ -21,8 +21,8 @@ func main() {
g.TakeHit(build, errinfo) g.TakeHit(build, errinfo)
}) })
build.SetOnPass(func () { build.SetOnStart(func () {
g.BuildPass() g.ClearLog()
}) })
go build.WatchDir() go build.WatchDir()

Loading…
Cancel
Save