52 lines
1.0 KiB
Go
52 lines
1.0 KiB
Go
package controller
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"go.uber.org/zap"
|
|
"time"
|
|
)
|
|
|
|
type Option func(*Controller)
|
|
|
|
func WithDataDir(dataDir *DataDir) Option {
|
|
return func(controller *Controller) {
|
|
controller.dataDir = dataDir
|
|
}
|
|
}
|
|
|
|
func WithListenAddr(listenAddr string) Option {
|
|
return func(controller *Controller) {
|
|
controller.listenAddr = listenAddr
|
|
}
|
|
}
|
|
|
|
func WithTLSConfig(tlsConfig *tls.Config) Option {
|
|
return func(controller *Controller) {
|
|
controller.tlsConfig = tlsConfig
|
|
}
|
|
}
|
|
|
|
func WithInsecureAuthDisabled() Option {
|
|
return func(controller *Controller) {
|
|
controller.insecureAuthDisabled = true
|
|
}
|
|
}
|
|
|
|
func WithSwaggerDocs() Option {
|
|
return func(controller *Controller) {
|
|
controller.enableSwaggerDocs = true
|
|
}
|
|
}
|
|
|
|
func WithWorkerOfflineTimeout(workerOfflineTimeout time.Duration) Option {
|
|
return func(controller *Controller) {
|
|
controller.workerOfflineTimeout = workerOfflineTimeout
|
|
}
|
|
}
|
|
|
|
func WithLogger(logger *zap.Logger) Option {
|
|
return func(controller *Controller) {
|
|
controller.logger = logger.Sugar()
|
|
}
|
|
}
|