|
|
|
package console
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"os"
|
|
|
|
"runtime"
|
|
|
|
|
|
|
|
"github.com/logrusorgru/aurora"
|
|
|
|
"github.com/zeromicro/go-zero/tools/goctl/vars"
|
|
|
|
)
|
|
|
|
|
|
|
|
type (
|
|
|
|
// Console wraps from the fmt.Sprintf,
|
|
|
|
// by default, it implemented the colorConsole to provide the colorful output to the console
|
|
|
|
// and the ideaConsole to output with prefix for the plugin of intellij
|
|
|
|
Console interface {
|
|
|
|
Success(format string, a ...interface{})
|
|
|
|
Info(format string, a ...interface{})
|
|
|
|
Debug(format string, a ...interface{})
|
|
|
|
Warning(format string, a ...interface{})
|
|
|
|
Error(format string, a ...interface{})
|
|
|
|
Fatalln(format string, a ...interface{})
|
|
|
|
MarkDone()
|
|
|
|
Must(err error)
|
|
|
|
}
|
|
|
|
|
|
|
|
colorConsole struct{}
|
|
|
|
|
|
|
|
// for idea log
|
|
|
|
ideaConsole struct{}
|
|
|
|
)
|
|
|
|
|
|
|
|
// NewConsole returns an instance of Console
|
|
|
|
func NewConsole(idea bool) Console {
|
|
|
|
if idea {
|
|
|
|
return NewIdeaConsole()
|
|
|
|
}
|
|
|
|
return NewColorConsole()
|
|
|
|
}
|
|
|
|
|
|
|
|
// NewColorConsole returns an instance of colorConsole
|
|
|
|
func NewColorConsole() Console {
|
|
|
|
return &colorConsole{}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *colorConsole) Info(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
fmt.Println(msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *colorConsole) Debug(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
println(aurora.Blue(msg))
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *colorConsole) Success(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
println(aurora.Green(msg))
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *colorConsole) Warning(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
println(aurora.Yellow(msg))
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *colorConsole) Error(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
println(aurora.Red(msg))
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *colorConsole) Fatalln(format string, a ...interface{}) {
|
|
|
|
c.Error(format, a...)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *colorConsole) MarkDone() {
|
|
|
|
c.Success("Done.")
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *colorConsole) Must(err error) {
|
|
|
|
if err != nil {
|
|
|
|
c.Fatalln("%+v", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// NewIdeaConsole returns a instance of ideaConsole
|
|
|
|
func NewIdeaConsole() Console {
|
|
|
|
return &ideaConsole{}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ideaConsole) Info(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
fmt.Println(msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ideaConsole) Debug(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
fmt.Println(aurora.Blue(msg))
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ideaConsole) Success(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
fmt.Println("[SUCCESS]: ", msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ideaConsole) Warning(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
fmt.Println("[WARNING]: ", msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ideaConsole) Error(format string, a ...interface{}) {
|
|
|
|
msg := fmt.Sprintf(format, a...)
|
|
|
|
fmt.Println("[ERROR]: ", msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ideaConsole) Fatalln(format string, a ...interface{}) {
|
|
|
|
i.Error(format, a...)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ideaConsole) MarkDone() {
|
|
|
|
i.Success("Done.")
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *ideaConsole) Must(err error) {
|
|
|
|
if err != nil {
|
|
|
|
i.Fatalln("%+v", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func println(msg interface{}) {
|
|
|
|
value, ok := msg.(aurora.Value)
|
|
|
|
if !ok {
|
|
|
|
fmt.Println(msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
goos := runtime.GOOS
|
|
|
|
if goos == vars.OsWindows {
|
|
|
|
fmt.Println(value.Value())
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
fmt.Println(msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
var defaultConsole = new(colorConsole)
|
|
|
|
|
|
|
|
func Success(format string, a ...interface{}) {
|
|
|
|
defaultConsole.Success(format, a...)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Info(format string, a ...interface{}) {
|
|
|
|
defaultConsole.Info(format, a...)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Debug(format string, a ...interface{}) {
|
|
|
|
defaultConsole.Debug(format, a...)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Warning(format string, a ...interface{}) {
|
|
|
|
defaultConsole.Warning(format, a...)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Error(format string, a ...interface{}) {
|
|
|
|
defaultConsole.Error(format, a...)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Fatalln(format string, a ...interface{}) {
|
|
|
|
defaultConsole.Fatalln(format, a...)
|
|
|
|
}
|
|
|
|
|
|
|
|
func MarkDone() {
|
|
|
|
defaultConsole.MarkDone()
|
|
|
|
}
|
|
|
|
|
|
|
|
func Must(err error) {
|
|
|
|
defaultConsole.Must(err)
|
|
|
|
}
|