summaryrefslogtreecommitdiff
path: root/utils/streamformatter.go
diff options
context:
space:
mode:
authorunclejack <unclejack@users.noreply.github.com>2014-04-09 01:56:01 +0300
committerunclejack <unclejack@users.noreply.github.com>2014-04-09 01:56:01 +0300
commite128a606e39fa63c6b4fd6e53a1d88cf00aad868 (patch)
tree199ee7eb6678ffecd2ddad95fce794c795ad5183 /utils/streamformatter.go
parent143c9707a9fafc39e1d9747f528db97b2564f01e (diff)
parentdc9c28f51d669d6b09e81c2381f800f1a33bb659 (diff)
downloaddocker-release-0.10.tar.gz
Merge pull request #5079 from unclejack/bump_v0.10.0release-0.100.10.1-hotfixes
Bump version to v0.10.0
Diffstat (limited to 'utils/streamformatter.go')
-rw-r--r--utils/streamformatter.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/utils/streamformatter.go b/utils/streamformatter.go
index 8876fa5cb7..d2758d3ca6 100644
--- a/utils/streamformatter.go
+++ b/utils/streamformatter.go
@@ -3,6 +3,7 @@ package utils
import (
"encoding/json"
"fmt"
+ "io"
)
type StreamFormatter struct {
@@ -90,3 +91,31 @@ func (sf *StreamFormatter) Used() bool {
func (sf *StreamFormatter) Json() bool {
return sf.json
}
+
+type StdoutFormater struct {
+ io.Writer
+ *StreamFormatter
+}
+
+func (sf *StdoutFormater) Write(buf []byte) (int, error) {
+ formattedBuf := sf.StreamFormatter.FormatStream(string(buf))
+ n, err := sf.Writer.Write(formattedBuf)
+ if n != len(formattedBuf) {
+ return n, io.ErrShortWrite
+ }
+ return len(buf), err
+}
+
+type StderrFormater struct {
+ io.Writer
+ *StreamFormatter
+}
+
+func (sf *StderrFormater) Write(buf []byte) (int, error) {
+ formattedBuf := sf.StreamFormatter.FormatStream("\033[91m" + string(buf) + "\033[0m")
+ n, err := sf.Writer.Write(formattedBuf)
+ if n != len(formattedBuf) {
+ return n, io.ErrShortWrite
+ }
+ return len(buf), err
+}