GitRepositoryManager/internal/echo/echo.go
Mikołaj Pęczkowski 5445ce1ccf Restructure project directories
Follow the standard of all go projects
2024-01-13 15:39:40 +01:00

73 lines
1.4 KiB
Go

package echo
import (
"fmt"
"io"
"os"
)
const (
ColorReset = "\033[0m"
ColorRed = "\033[31m"
ColorGreen = "\033[32m"
ColorYellow = "\033[33m"
ColorBlue = "\033[34m"
)
var (
useColor bool = false
output io.Writer = os.Stdout
)
func Color(enabled bool) {
useColor = enabled
}
func Output(writer io.Writer) {
output = writer
}
func ErrorfMsg(format string, a ...interface{}) error {
msg := fmt.Sprintf(format, a...)
if useColor {
msg = fmt.Sprintf("%vError:%v %v", ColorRed, ColorReset, msg)
} else {
msg = fmt.Sprintf("Error: %v", msg)
}
return write(msg)
}
func InfoFMsg(format string, a ...interface{}) error {
msg := fmt.Sprintf(format, a...)
if useColor {
msg = fmt.Sprintf("%vInfo:%v %v", ColorBlue, ColorReset, msg)
} else {
msg = fmt.Sprintf("Info: %v", msg)
}
return write(msg)
}
func GreenMessageF(format string, a ...interface{}) error {
return writeWithColor(fmt.Sprintf(format, a...), ColorGreen)
}
func YellowMessageF(format string, a ...interface{}) error {
return writeWithColor(fmt.Sprintf(format, a...), ColorYellow)
}
func RedMessageF(format string, a ...interface{}) error {
return writeWithColor(fmt.Sprintf(format, a...), ColorRed)
}
func writeWithColor(msg string, color string) error {
if useColor {
return write(fmt.Sprintf("%v%v%v", color, msg, ColorReset))
}
return write(msg)
}
func write(msg string) error {
_, err := fmt.Fprintln(output, msg)
return err
}