diff options
author | unclejack <unclejack@users.noreply.github.com> | 2014-04-09 01:56:01 +0300 |
---|---|---|
committer | unclejack <unclejack@users.noreply.github.com> | 2014-04-09 01:56:01 +0300 |
commit | e128a606e39fa63c6b4fd6e53a1d88cf00aad868 (patch) | |
tree | 199ee7eb6678ffecd2ddad95fce794c795ad5183 /utils/streamformatter.go | |
parent | 143c9707a9fafc39e1d9747f528db97b2564f01e (diff) | |
parent | dc9c28f51d669d6b09e81c2381f800f1a33bb659 (diff) | |
download | docker-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.go | 29 |
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 +} |