|
|
|
|
@ -17,7 +17,6 @@ import ( |
|
|
|
|
. "lcthw.dev/go/ttarpit/debug" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
type ErrorHandler func (data.ErrInfo)
|
|
|
|
|
|
|
|
|
|
const ( |
|
|
|
|
START=0 |
|
|
|
|
@ -29,16 +28,19 @@ const ( |
|
|
|
|
type Builder struct { |
|
|
|
|
settings config.Config
|
|
|
|
|
OnError ErrorHandler |
|
|
|
|
OnPass PassHandler |
|
|
|
|
|
|
|
|
|
BuildState int |
|
|
|
|
HadErrors bool |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func New(settings config.Config, handler ErrorHandler) (*Builder) { |
|
|
|
|
type ErrorHandler func (data.ErrInfo)
|
|
|
|
|
type PassHandler func ()
|
|
|
|
|
|
|
|
|
|
func New(settings config.Config) (*Builder) { |
|
|
|
|
builder := new(Builder) |
|
|
|
|
|
|
|
|
|
builder.settings = settings |
|
|
|
|
builder.OnError = handler |
|
|
|
|
|
|
|
|
|
return builder |
|
|
|
|
} |
|
|
|
|
@ -65,6 +67,8 @@ func (build *Builder) ParseErrInfo(line string, reg *regexp.Regexp) (data.ErrInf |
|
|
|
|
|
|
|
|
|
info.Message = matches[reg.SubexpIndex("Message")] |
|
|
|
|
|
|
|
|
|
info.Raw = matches[0] |
|
|
|
|
|
|
|
|
|
return info, true |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -90,6 +94,13 @@ func (build *Builder) LaunchLogger(in io.Reader, out io.Writer, err error) { |
|
|
|
|
}() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (build *Builder) SetOnError(errhandler ErrorHandler) { |
|
|
|
|
build.OnError = errhandler |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (build *Builder) SetOnPass(passhandler PassHandler) { |
|
|
|
|
build.OnPass = passhandler |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (build *Builder) LaunchProcess(proc *config.Process) { |
|
|
|
|
proc.ExecCmd = exec.Command(proc.Command, proc.Args...) |
|
|
|
|
@ -145,6 +156,7 @@ func (build *Builder) EndBuild() { |
|
|
|
|
build.BuildState = FAILED |
|
|
|
|
} else { |
|
|
|
|
build.BuildState = PASSED |
|
|
|
|
build.OnPass() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|