-
Notifications
You must be signed in to change notification settings - Fork 567
/
option.go
41 lines (35 loc) · 1.09 KB
/
option.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
package pachconfig
type ConfigOption = func(*Configuration)
func ApplyOptions(config *Configuration, opts ...ConfigOption) {
for _, opt := range opts {
opt(config)
}
}
// ConfigFromOptions is for use in tests where some tests may want to generate a
// config with certain default values overridden via options.
func ConfigFromOptions(opts ...ConfigOption) *Configuration {
result := &Configuration{
GlobalConfiguration: &GlobalConfiguration{},
PachdSpecificConfiguration: &PachdSpecificConfiguration{},
WorkerSpecificConfiguration: &WorkerSpecificConfiguration{},
EnterpriseSpecificConfiguration: &EnterpriseSpecificConfiguration{},
}
ApplyOptions(result, opts...)
return result
}
func WithEtcdHostPort(host string, port string) ConfigOption {
return func(config *Configuration) {
config.EtcdHost = host
config.EtcdPort = port
}
}
func WithPachdPeerPort(port uint16) ConfigOption {
return func(config *Configuration) {
config.PeerPort = port
}
}
func WithOidcPort(port uint16) ConfigOption {
return func(config *Configuration) {
config.OidcPort = port
}
}