blob: ff59ec8ab68fba4de79f5cff8faef141fc9432e4 [file] [log] [blame]
package cmd
import (
"github.com/Masterminds/cookoo"
"fmt"
"os"
)
var Quiet bool = false
const (
Blue = "0;34"
Red = "0;31"
BoldRed = "1;31"
Yellow = "0;33"
Cyan = "0;36"
Pink = "1;35"
)
func Color(code, msg string) string {
return fmt.Sprintf("\033[%sm%s\033[m", code, msg)
}
// BeQuiet supresses Info and Debug messages.
func BeQuiet(c cookoo.Context, p *cookoo.Params) (interface{}, cookoo.Interrupt) {
qstr := p.Get("quiet", "false").(string)
Quiet = qstr == "true"
return Quiet, nil
}
// Info logs information
func Info(msg string, args ...interface{}) {
if Quiet { return }
fmt.Print(Color(Yellow, "[INFO] "))
Msg(msg, args...)
}
// Debug logs debug information
func Debug(msg string, args ...interface{}) {
if Quiet { return }
fmt.Print("[DEBUG] ")
Msg(msg, args...)
}
// Warn logs a warning
func Warn(msg string, args ...interface{}) {
fmt.Fprint(os.Stderr, Color(Red, "[WARN] "))
ErrMsg(msg, args...)
}
// Error logs and error.
func Error(msg string, args ...interface{}) {
fmt.Fprint(os.Stderr, Color(BoldRed, "[ERROR] "))
ErrMsg(msg, args...)
}
// ErrMsg sends a message to Stderr
func ErrMsg(msg string, args...interface{}) {
if len(args) == 0 {
fmt.Fprint(os.Stderr, msg)
return
}
fmt.Fprintf(os.Stderr, msg, args...)
}
func Msg(msg string, args...interface{}) {
if len(args) == 0 {
fmt.Print(msg)
return
}
fmt.Printf(msg, args...)
}