mirror of
https://github.com/beego/bee.git
synced 2024-11-29 11:41:28 +00:00
52 lines
1.6 KiB
Go
52 lines
1.6 KiB
Go
|
// Copyright 2013 bee authors
|
||
|
//
|
||
|
// Licensed under the Apache License, Version 2.0 (the "License"): you may
|
||
|
// not use this file except in compliance with the License. You may obtain
|
||
|
// a copy of the License at
|
||
|
//
|
||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||
|
//
|
||
|
// Unless required by applicable law or agreed to in writing, software
|
||
|
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||
|
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||
|
// License for the specific language governing permissions and limitations
|
||
|
// under the License.
|
||
|
|
||
|
package main
|
||
|
|
||
|
import "io"
|
||
|
|
||
|
type outputMode int
|
||
|
|
||
|
// DiscardNonColorEscSeq supports the divided color escape sequence.
|
||
|
// But non-color escape sequence is not output.
|
||
|
// Please use the OutputNonColorEscSeq If you want to output a non-color
|
||
|
// escape sequences such as ncurses. However, it does not support the divided
|
||
|
// color escape sequence.
|
||
|
const (
|
||
|
_ outputMode = iota
|
||
|
DiscardNonColorEscSeq
|
||
|
OutputNonColorEscSeq
|
||
|
)
|
||
|
|
||
|
// NewColorWriter creates and initializes a new ansiColorWriter
|
||
|
// using io.Writer w as its initial contents.
|
||
|
// In the console of Windows, which change the foreground and background
|
||
|
// colors of the text by the escape sequence.
|
||
|
// In the console of other systems, which writes to w all text.
|
||
|
func NewColorWriter(w io.Writer) io.Writer {
|
||
|
return NewModeColorWriter(w, DiscardNonColorEscSeq)
|
||
|
}
|
||
|
|
||
|
// NewModeColorWriter create and initializes a new ansiColorWriter
|
||
|
// by specifying the outputMode.
|
||
|
func NewModeColorWriter(w io.Writer, mode outputMode) io.Writer {
|
||
|
if _, ok := w.(*colorWriter); !ok {
|
||
|
return &colorWriter{
|
||
|
w: w,
|
||
|
mode: mode,
|
||
|
}
|
||
|
}
|
||
|
return w
|
||
|
}
|