Error handling. Vendoring
Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
82
vendor/gopkg.in/dixonwille/wlog.v2/concurrent.go
generated
vendored
Normal file
82
vendor/gopkg.in/dixonwille/wlog.v2/concurrent.go
generated
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
package wlog
|
||||
|
||||
import "sync"
|
||||
|
||||
// ConcurrentUI is a wrapper for UI that makes the UI thread safe.
|
||||
type ConcurrentUI struct {
|
||||
UI UI
|
||||
l sync.Mutex
|
||||
}
|
||||
|
||||
// Log calls UI.Log to write.
|
||||
// This is a thread safe function.
|
||||
func (ui *ConcurrentUI) Log(message string) {
|
||||
ui.l.Lock()
|
||||
defer ui.l.Unlock()
|
||||
ui.UI.Log(message)
|
||||
}
|
||||
|
||||
// Output calls UI.Output to write.
|
||||
// This is a thread safe function.
|
||||
func (ui *ConcurrentUI) Output(message string) {
|
||||
ui.l.Lock()
|
||||
defer ui.l.Unlock()
|
||||
ui.UI.Output(message)
|
||||
}
|
||||
|
||||
// Success calls UI.Success to write.
|
||||
// Useful when you want separate colors or prefixes.
|
||||
// This is a thread safe function.
|
||||
func (ui *ConcurrentUI) Success(message string) {
|
||||
ui.l.Lock()
|
||||
defer ui.l.Unlock()
|
||||
ui.UI.Success(message)
|
||||
}
|
||||
|
||||
// Info calls UI.Info to write.
|
||||
// Useful when you want separate colors or prefixes.
|
||||
// This is a thread safe function.
|
||||
func (ui *ConcurrentUI) Info(message string) {
|
||||
ui.l.Lock()
|
||||
defer ui.l.Unlock()
|
||||
ui.UI.Info(message)
|
||||
}
|
||||
|
||||
// Error calls UI.Error to write.
|
||||
// This is a thread safe function.
|
||||
func (ui *ConcurrentUI) Error(message string) {
|
||||
ui.l.Lock()
|
||||
defer ui.l.Unlock()
|
||||
ui.UI.Error(message)
|
||||
}
|
||||
|
||||
// Warn calls UI.Warn to write.
|
||||
// Useful when you want separate colors or prefixes.
|
||||
// This is a thread safe function.
|
||||
func (ui *ConcurrentUI) Warn(message string) {
|
||||
ui.l.Lock()
|
||||
defer ui.l.Unlock()
|
||||
ui.UI.Warn(message)
|
||||
}
|
||||
|
||||
// Running calls UI.Running to write.
|
||||
// Useful when you want separate colors or prefixes.
|
||||
// This is a thread safe function.
|
||||
func (ui *ConcurrentUI) Running(message string) {
|
||||
ui.l.Lock()
|
||||
defer ui.l.Unlock()
|
||||
ui.UI.Running(message)
|
||||
}
|
||||
|
||||
// Ask will call UI.Ask with message then wait for UI.Ask to return a response and/or error.
|
||||
// It will clean the response by removing any carriage returns and new lines that if finds.
|
||||
//Then it will trim the message using the trim variable.
|
||||
//Use and empty string to specify you do not want to trim.
|
||||
// If a message is not used ("") then it will not prompt user before waiting on a response.
|
||||
// This is a thread safe function.
|
||||
func (ui *ConcurrentUI) Ask(message, trim string) (string, error) {
|
||||
ui.l.Lock()
|
||||
defer ui.l.Unlock()
|
||||
res, err := ui.UI.Ask(message, trim)
|
||||
return res, err
|
||||
}
|
Reference in New Issue
Block a user