本文整理汇总了Golang中github.com/cloudfoundry/bosh-utils/system.Command.Stdout方法的典型用法代码示例。如果您正苦于以下问题:Golang Command.Stdout方法的具体用法?Golang Command.Stdout怎么用?Golang Command.Stdout使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/cloudfoundry/bosh-utils/system.Command
的用法示例。
在下文中一共展示了Command.Stdout方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RunCommand
func (f FileLoggingCmdRunner) RunCommand(jobName string, taskName string, cmd boshsys.Command) (*CmdResult, error) {
logsDir := path.Join(f.baseDir, jobName)
err := f.fs.RemoveAll(logsDir)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Removing log dir for job %s", jobName)
}
err = f.fs.MkdirAll(logsDir, os.FileMode(0750))
if err != nil {
return nil, bosherr.WrapErrorf(err, "Creating log dir for job %s", jobName)
}
stdoutPath := path.Join(logsDir, fmt.Sprintf("%s.stdout.log", taskName))
stderrPath := path.Join(logsDir, fmt.Sprintf("%s.stderr.log", taskName))
stdoutFile, err := f.fs.OpenFile(stdoutPath, fileOpenFlag, fileOpenPerm)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Opening stdout for task %s", taskName)
}
defer func() {
_ = stdoutFile.Close()
}()
cmd.Stdout = stdoutFile
stderrFile, err := f.fs.OpenFile(stderrPath, fileOpenFlag, fileOpenPerm)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Opening stderr for task %s", taskName)
}
defer func() {
_ = stderrFile.Close()
}()
cmd.Stderr = stderrFile
// Stdout/stderr are redirected to the files
_, _, exitStatus, runErr := f.cmdRunner.RunComplexCommand(cmd)
stdout, isStdoutTruncated, err := f.getTruncatedOutput(stdoutFile, f.truncateLength)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Truncating stdout for task %s", taskName)
}
stderr, isStderrTruncated, err := f.getTruncatedOutput(stderrFile, f.truncateLength)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Truncating stderr for task %s", taskName)
}
result := &CmdResult{
IsStdoutTruncated: isStdoutTruncated,
IsStderrTruncated: isStderrTruncated,
Stdout: stdout,
Stderr: stderr,
ExitStatus: exitStatus,
}
if runErr != nil {
return nil, FileLoggingExecErr{result}
}
return result, nil
}