open-vault/vendor/github.com/mitchellh/cli/ui_concurrent.go
Jeff Mitchell 7a4eda156c Migrate to built-in Go vendoring.
This also removes `godep` calls from make scripts. Of note is that
currently `./...` checking in acceptance tests is disabled.
2016-02-18 15:06:02 -05:00

55 lines
877 B
Go

package cli
import (
"sync"
)
// ConcurrentUi is a wrapper around a Ui interface (and implements that
// interface) making the underlying Ui concurrency safe.
type ConcurrentUi struct {
Ui Ui
l sync.Mutex
}
func (u *ConcurrentUi) Ask(query string) (string, error) {
u.l.Lock()
defer u.l.Unlock()
return u.Ui.Ask(query)
}
func (u *ConcurrentUi) AskSecret(query string) (string, error) {
u.l.Lock()
defer u.l.Unlock()
return u.Ui.AskSecret(query)
}
func (u *ConcurrentUi) Error(message string) {
u.l.Lock()
defer u.l.Unlock()
u.Ui.Error(message)
}
func (u *ConcurrentUi) Info(message string) {
u.l.Lock()
defer u.l.Unlock()
u.Ui.Info(message)
}
func (u *ConcurrentUi) Output(message string) {
u.l.Lock()
defer u.l.Unlock()
u.Ui.Output(message)
}
func (u *ConcurrentUi) Warn(message string) {
u.l.Lock()
defer u.l.Unlock()
u.Ui.Warn(message)
}