update logic to use ansi escape characters

pull/16/head
Eoin McAfee 3 years ago
parent 39ece7e74a
commit 0c2b0a9c62

@ -7,7 +7,12 @@ import (
"regexp"
)
var re = regexp.MustCompile("#((.*?)#)")
const Esc = "\u001B"
var (
prefix = Esc + "]1338;"
re = regexp.MustCompilePOSIX("\u001B]1338;((.*?)\u001B]0m)")
)
type Writer struct {
base io.Writer
@ -19,16 +24,18 @@ func New(w io.Writer) *Writer {
}
func (e *Writer) Write(p []byte) (n int, err error) {
if bytes.HasPrefix(p, []byte("#")) == false {
if bytes.HasPrefix(p, []byte(prefix)) == false {
return e.base.Write(p)
}
card := re.FindStringSubmatch(string(p))
data, err := base64.StdEncoding.DecodeString(card[len(card)-1:][0])
if err == nil {
e.file = data
if len(card) != 0 {
data, err := base64.StdEncoding.DecodeString(card[len(card)-1:][0])
if err == nil {
e.file = data
}
return e.base.Write([]byte(""))
}
// remove encoded string for logs
return e.base.Write([]byte(""))
return e.base.Write(p)
}
func (e *Writer) File() ([]byte, bool) {

Loading…
Cancel
Save