From e835562543a0a3c11f8bb4425aac8b2c3b45d3ab Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Fri, 1 Nov 2019 16:27:44 +0100 Subject: [PATCH] Add logging package it will abstract other frameworks eventually, but for now keep it simple --- pkg/logger/logger.go | 79 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 pkg/logger/logger.go diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go new file mode 100644 index 00000000..5849e475 --- /dev/null +++ b/pkg/logger/logger.go @@ -0,0 +1,79 @@ +package logger + +import ( + "fmt" + "time" + + . "github.com/logrusorgru/aurora" + + "github.com/briandowns/spinner" +) + +var s *spinner.Spinner + +func Spinner(i int) { + + if i > 43 { + i = 43 + } + + s = spinner.New(spinner.CharSets[i], 100*time.Millisecond) // Build our new spinner + s.Start() // Start the spinner +} + +func SpinnerText(suffix, prefix string) { + s.Suffix = Bold(Magenta(suffix)).BgBlack().String() + s.Prefix = Bold(Cyan(prefix)).String() +} + +func SpinnerStop() { + s.Stop() + s = nil +} + +func Warning(msg ...interface{}) { + if s != nil { + SpinnerText(Sprintf(msg), Bold(Yellow("Warn")).BgBlack().String()) + return + } + cmd := []interface{}{Bold(Yellow("Warn")).BgBlack().String()} + for _, f := range msg { + cmd = append(cmd, f) + } + fmt.Println(cmd) +} +func Debug(msg ...interface{}) { + if s != nil { + SpinnerText(Sprintf(msg), Bold(White("Debug")).BgBlack().String()) + return + } + cmd := []interface{}{Bold(White("Debug")).String()} + for _, f := range msg { + cmd = append(cmd, f) + } + fmt.Println(cmd) +} + +func Info(msg ...interface{}) { + if s != nil { + SpinnerText(Sprintf(msg), Bold(Blue("Info")).BgBlack().String()) + return + } + cmd := []interface{}{Bold(Green("Info")).String()} + for _, f := range msg { + cmd = append(cmd, f) + } + fmt.Println(cmd) +} + +func Error(msg ...interface{}) { + if s != nil { + SpinnerText(Sprintf(msg), Bold(Red("Error")).BgBlack().String()) + return + } + cmd := []interface{}{Bold(Red("Error")).String()} + for _, f := range msg { + cmd = append(cmd, f) + } + fmt.Println(cmd) +}