service/example/runner: write std out, std err to files.

This commit is contained in:
Daniel Theophanes
2015-03-28 23:46:22 -07:00
parent 0dd4771d9c
commit 842e0b7dbc
2 changed files with 26 additions and 5 deletions
+22 -4
View File
@@ -25,6 +25,8 @@ type Config struct {
Exec string
Args []string
Env []string
Stderr, Stdout string
}
var logger service.Logger
@@ -61,13 +63,29 @@ func (p *program) run(cmd *exec.Cmd) {
}
}()
out, err := cmd.CombinedOutput()
if p.Stderr != "" {
f, err := os.OpenFile(p.Stderr, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0777)
if err != nil {
logger.Warningf("Failed to open std err %q: %v", p.Stderr, err)
return
}
defer f.Close()
cmd.Stderr = f
}
if p.Stdout != "" {
f, err := os.OpenFile(p.Stdout, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0777)
if err != nil {
logger.Warningf("Failed to open std out %q: %v", p.Stdout, err)
return
}
defer f.Close()
cmd.Stdout = f
}
err := cmd.Run()
if err != nil {
logger.Warningf("Error running: %v", err)
}
if len(out) != 0 {
logger.Info(string(out))
}
return
}
+4 -1
View File
@@ -11,5 +11,8 @@
"GOROOT_BOOTSTRAP=C:\\dev\\go_ready",
"HOMEDRIVE=C:",
"HOMEPATH=\\Documents and Settings\\Administrator"
]
],
"Stderr": "C:\\builder_err.log",
"Stdout": "C:\\builder_out.log"
}