restic/internal/ui/message.go

48 lines
1 KiB
Go
Raw Normal View History

2018-04-22 09:57:20 +00:00
package ui
import (
"fmt"
)
2018-04-22 09:57:20 +00:00
// Message reports progress with messages of different verbosity.
type Message struct {
term Terminal
2018-04-22 09:57:20 +00:00
v uint
}
// NewMessage returns a message progress reporter with underlying terminal
// term.
func NewMessage(term Terminal, verbosity uint) *Message {
2018-04-22 09:57:20 +00:00
return &Message{
term: term,
v: verbosity,
}
}
// E reports an error
func (m *Message) E(msg string, args ...interface{}) {
m.term.Error(fmt.Sprintf(msg, args...))
2018-04-22 09:57:20 +00:00
}
// P prints a message if verbosity >= 1, this is used for normal messages which
// are not errors.
func (m *Message) P(msg string, args ...interface{}) {
if m.v >= 1 {
m.term.Print(fmt.Sprintf(msg, args...))
2018-04-22 09:57:20 +00:00
}
}
// V prints a message if verbosity >= 2, this is used for verbose messages.
func (m *Message) V(msg string, args ...interface{}) {
if m.v >= 2 {
m.term.Print(fmt.Sprintf(msg, args...))
2018-04-22 09:57:20 +00:00
}
}
// VV prints a message if verbosity >= 3, this is used for debug messages.
func (m *Message) VV(msg string, args ...interface{}) {
if m.v >= 3 {
m.term.Print(fmt.Sprintf(msg, args...))
2018-04-22 09:57:20 +00:00
}
}