service/example/runner: write std out, std err to files.
This commit is contained in:
@@ -25,6 +25,8 @@ type Config struct {
|
|||||||
Exec string
|
Exec string
|
||||||
Args []string
|
Args []string
|
||||||
Env []string
|
Env []string
|
||||||
|
|
||||||
|
Stderr, Stdout string
|
||||||
}
|
}
|
||||||
|
|
||||||
var logger service.Logger
|
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 {
|
if err != nil {
|
||||||
logger.Warningf("Error running: %v", err)
|
logger.Warningf("Error running: %v", err)
|
||||||
}
|
}
|
||||||
if len(out) != 0 {
|
|
||||||
logger.Info(string(out))
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,5 +11,8 @@
|
|||||||
"GOROOT_BOOTSTRAP=C:\\dev\\go_ready",
|
"GOROOT_BOOTSTRAP=C:\\dev\\go_ready",
|
||||||
"HOMEDRIVE=C:",
|
"HOMEDRIVE=C:",
|
||||||
"HOMEPATH=\\Documents and Settings\\Administrator"
|
"HOMEPATH=\\Documents and Settings\\Administrator"
|
||||||
]
|
],
|
||||||
|
|
||||||
|
"Stderr": "C:\\builder_err.log",
|
||||||
|
"Stdout": "C:\\builder_out.log"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user