48 lines
882 B
Go
48 lines
882 B
Go
package output
|
||
|
||
import (
|
||
"fmt"
|
||
"io"
|
||
"os"
|
||
"strings"
|
||
)
|
||
|
||
var (
|
||
palette = struct {
|
||
miroPrefixGreen uint32
|
||
miroChevronTeal uint32
|
||
}{
|
||
miroPrefixGreen: 0x70E000,
|
||
miroChevronTeal: 0x1DD3B0,
|
||
}
|
||
|
||
chevron = NewStyle().FG(palette.miroChevronTeal).Bold().Italic().Apply("›")
|
||
prefix = NewStyle().FG(palette.miroPrefixGreen).Bold().Italic().Apply("miro") + " " + chevron + " "
|
||
)
|
||
|
||
func Prefix() string {
|
||
return prefix
|
||
}
|
||
|
||
func Format(msg string) string {
|
||
body := strings.TrimRight(msg, "\n")
|
||
suffix := msg[len(body):]
|
||
return Prefix() + body + suffix
|
||
}
|
||
|
||
func Println(msg string) {
|
||
Fprintln(os.Stdout, msg)
|
||
}
|
||
|
||
func Printf(format string, args ...any) {
|
||
Fprintf(os.Stdout, format, args...)
|
||
}
|
||
|
||
func Fprintln(w io.Writer, msg string) {
|
||
fmt.Fprintln(w, Format(msg))
|
||
}
|
||
|
||
func Fprintf(w io.Writer, format string, args ...any) {
|
||
fmt.Fprint(w, Format(fmt.Sprintf(format, args...)))
|
||
}
|