-
Notifications
You must be signed in to change notification settings - Fork 24
/
params.go
105 lines (89 loc) · 2.32 KB
/
params.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package integrationlink
import (
"github.com/urfave/cli"
"github.com/Scalingo/go-scalingo"
)
func CheckAndFillParams(c *cli.Context, app string) (*scalingo.SCMRepoLinkUpdateParams, error) {
paramsChecker := newParamsChecker(c)
params := &scalingo.SCMRepoLinkUpdateParams{
Branch: paramsChecker.lookupBranch(),
AutoDeployEnabled: paramsChecker.lookupAutoDeploy(),
DeployReviewAppsEnabled: paramsChecker.lookupDeployReviewApps(),
DestroyOnCloseEnabled: paramsChecker.lookupDestroyOnClose(),
HoursBeforeDeleteOnClose: paramsChecker.lookupHoursBeforeDestroyOnClose(),
DestroyStaleEnabled: paramsChecker.lookupDestroyOnStale(),
HoursBeforeDeleteStale: paramsChecker.lookupHoursBeforeDestroyOnStale(),
}
return params, nil
}
type paramsChecker struct {
ctx *cli.Context
}
func newParamsChecker(ctx *cli.Context) *paramsChecker {
return ¶msChecker{ctx: ctx}
}
func (p *paramsChecker) lookupBranch() *string {
if !p.ctx.IsSet("branch") {
return nil
}
branch := p.ctx.String("branch")
return &branch
}
func (p *paramsChecker) lookupAutoDeploy() *bool {
if p.ctx.IsSet("auto-deploy") {
t := true
return &t
}
if p.ctx.IsSet("no-auto-deploy") {
f := false
return &f
}
return nil
}
func (p *paramsChecker) lookupDeployReviewApps() *bool {
if p.ctx.IsSet("deploy-review-apps") {
t := true
return &t
}
if p.ctx.IsSet("no-deploy-review-apps") {
f := false
return &f
}
return nil
}
func (p *paramsChecker) lookupDestroyOnClose() *bool {
if p.ctx.IsSet("destroy-on-close") {
t := true
return &t
}
if p.ctx.IsSet("no-destroy-on-close") {
f := false
return &f
}
return nil
}
func (p *paramsChecker) lookupHoursBeforeDestroyOnClose() *uint {
if !p.ctx.IsSet("hours-before-destroy-on-close") {
return nil
}
hoursBeforeDestroyOnClose := p.ctx.Uint("hours-before-destroy-on-close")
return &hoursBeforeDestroyOnClose
}
func (p *paramsChecker) lookupDestroyOnStale() *bool {
if p.ctx.IsSet("destroy-on-stale") {
t := true
return &t
}
if p.ctx.IsSet("no-destroy-on-stale") {
f := false
return &f
}
return nil
}
func (p *paramsChecker) lookupHoursBeforeDestroyOnStale() *uint {
if !p.ctx.IsSet("hours-before-destroy-on-stale") {
return nil
}
hoursBeforeDestroyOnStale := p.ctx.Uint("hours-before-destroy-on-stale")
return &hoursBeforeDestroyOnStale
}