-
Notifications
You must be signed in to change notification settings - Fork 1
/
bool.go
76 lines (65 loc) · 1.33 KB
/
bool.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package survey
import "github.com/AlecAivazis/survey/v2"
type Bool struct {
*KindMeta
*ObjectMeta
askOpts []survey.AskOpt
}
func (c *Bool) NewKindMeta() *Bool {
c.KindMeta = NewKindMeta()
return c
}
func (c *Bool) NewObjectMeta() *Bool {
c.ObjectMeta = NewObjectMeta()
return c
}
func (c *Bool) SetKind(value string) *Bool {
c.KindMeta.SetKind(value)
return c
}
func (c *Bool) SetName(value string) *Bool {
c.ObjectMeta.SetName(value)
return c
}
func (c *Bool) SetMessage(value string) *Bool {
c.ObjectMeta.SetMessage(value)
return c
}
func (c *Bool) SetDefault(value string) *Bool {
c.ObjectMeta.SetDefault(value)
return c
}
func (c *Bool) SetHelp(value string) *Bool {
c.ObjectMeta.SetHelp(value)
return c
}
func (c *Bool) SetRequired(value bool) *Bool {
c.ObjectMeta.SetRequired(value)
return c
}
func (c *Bool) Complete() error {
return nil
}
func (c *Bool) Render(target interface{}) error {
if err := c.Complete(); err != nil {
return err
}
defValue := false
if c.Default == "true" {
defValue = true
}
boolVal := &survey.Confirm{
Renderer: survey.Renderer{},
Message: c.Message,
Default: defValue,
Help: c.Help,
}
return survey.AskOne(boolVal, target, c.askOpts...)
}
func NewBool() *Bool {
return &Bool{
KindMeta: NewKindMeta(),
ObjectMeta: NewObjectMeta(),
}
}
var _ Question = NewBool()