|
|
|
@ -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) |
|
|
|
|