37 lines · 767 B · Go
RawDownload
//+build windows package cmd import (	"fmt"	"os"	"sync" 	ansiterm "github.com/Azure/go-ansiterm"	"github.com/Azure/go-ansiterm/winterm") var (	initAnsiParser sync.Once	ansiParser     *ansiterm.AnsiParser) func writeToTerminal(b []byte) {	initAnsiParser.Do(func() {		winEventHandler := winterm.CreateWinEventHandler(os.Stdout.Fd(), os.Stdout)		ansiParser = ansiterm.CreateParser("Ground", winEventHandler)	})	// Remove all non-ASCII characters until this is fixed	// https://github.com/Azure/go-ansiterm/issues/26	r := []rune(string(b))	for i := range r {		if r[i] >= 127 {			r[i] = '.'		}	}	b = []byte(string(r))	_, err := ansiParser.Parse(b)	if err != nil {		_, _ = fmt.Fprintf(os.Stderr, "\n*** Error from ANSI parser: %v\n", err)	}}