From bef8de93194a442c21481f0b7e72f2fac781f799 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Wed, 20 Nov 2013 07:37:03 +0000 Subject: [PATCH] Engine: integer job status, improved stream API * Jobs return an integer status instead of a string * Status convention mimics unix process execution: 0=success, 1=generic error, 127="no such command" * Stdout and Stderr support multiple thread-safe data receivers and ring buffer filtering --- engine/job.go | 2 +- engine/streams.go | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/engine/job.go b/engine/job.go index 478f06cd60..465086af91 100644 --- a/engine/job.go +++ b/engine/job.go @@ -24,7 +24,7 @@ type Job struct { Eng *Engine Name string Args []string - env *Env + env *Env Stdout *Output Stderr *Output Stdin *Input diff --git a/engine/streams.go b/engine/streams.go index ee26fe5f1e..7cd4a60cf7 100644 --- a/engine/streams.go +++ b/engine/streams.go @@ -168,7 +168,7 @@ func Tail(src io.Reader, n int, dst *[]string) { // AddEnv starts a new goroutine which will decode all subsequent data // as a stream of json-encoded objects, and point `dst` to the last // decoded object. -// The result `env` can be queried using the type-neutral Env interface. +// The result `env` can be queried using the type-neutral Env interface. // It is not safe to query `env` until the Output is closed. func (o *Output) AddEnv() (dst *Env, err error) { src, err := o.AddPipe() @@ -185,9 +185,8 @@ func (o *Output) AddEnv() (dst *Env, err error) { if err != nil { return } - *dst= *env + *dst = *env } }() return dst, nil } -