diff --git a/fileboy.go b/fileboy.go index e7f3704..03fbd9a 100644 --- a/fileboy.go +++ b/fileboy.go @@ -18,8 +18,12 @@ import ( const ( Version = 1 - InstExecWhenStart = "exec-when-start" - InstShouldFinish = "should-finish" + InstExecWhenStart = "exec-when-start" + InstShouldFinish = "should-finish" + InstIgnoreWarn = "ignore-warn" + InstIgnoreInfo = "ignore-info" + InstIgnoreStdout = "ignore-stdout" + InstIgnoreExecError = "ignore-exec-error" ) var ( diff --git a/taskman.go b/taskman.go index 9727316..9c919c3 100644 --- a/taskman.go +++ b/taskman.go @@ -93,17 +93,26 @@ func (t *TaskMan) run(cf *changedFile) { //cmd.SysProcAttr = &syscall.SysProcAttr{CreationFlags: syscall.CREATE_UNICODE_ENVIRONMENT} t.cmd.Stdin = os.Stdin t.cmd.Stdout = os.Stdout + if keyInInstruction(InstIgnoreStdout) { + t.cmd.Stdout = nil + } t.cmd.Stderr = os.Stderr t.cmd.Dir = projectFolder t.cmd.Env = os.Environ() err := t.cmd.Start() if err != nil { logError("run command", carr, "error. ", err) + if keyInInstruction(InstIgnoreExecError) { + continue + } break } err = t.cmd.Wait() if err != nil { logWarn("command exec failed:", carr, err) + if keyInInstruction(InstIgnoreExecError) { + continue + } break } if t.cmd.Process != nil { diff --git a/util.go b/util.go index c731ae5..d44c2eb 100644 --- a/util.go +++ b/util.go @@ -82,11 +82,17 @@ func inStrArray(s string, arr []string) bool { } func logInfo(v ...interface{}) { + if keyInInstruction(InstIgnoreInfo) { + return + } v = append([]interface{}{"I:"}, v...) log.Println(v...) } func logWarn(v ...interface{}) { + if keyInInstruction(InstIgnoreWarn) { + return + } v = append([]interface{}{"W:"}, v...) log.Println(v...) }