1
0
mirror of https://github.com/go-micro/go-micro.git synced 2024-12-12 08:23:58 +02:00
go-micro/runtime/options.go

57 lines
1.0 KiB
Go
Raw Normal View History

2019-09-24 19:32:35 +02:00
package runtime
2019-09-24 20:00:11 +02:00
import (
"io"
)
type Option func(o *Options)
// Options configure runtime
type Options struct {
// Notifier for updates
Notifier Notifier
}
// AutoUpdate enables micro auto-updates
func WithNotifier(n Notifier) Option {
return func(o *Options) {
o.Notifier = n
}
}
2019-09-24 19:32:35 +02:00
type CreateOption func(o *CreateOptions)
// CreateOptions configure runtime services
2019-09-24 19:32:35 +02:00
type CreateOptions struct {
// command to execute including args
Command []string
// Environment to configure
Env []string
2019-09-24 20:00:11 +02:00
// Log output
Output io.Writer
2019-09-24 19:32:35 +02:00
}
2019-09-24 20:00:11 +02:00
// WithCommand specifies the command to execute
2019-09-24 19:32:35 +02:00
func WithCommand(c string, args ...string) CreateOption {
return func(o *CreateOptions) {
// set command
o.Command = []string{c}
// set args
o.Command = append(o.Command, args...)
}
}
// WithEnv sets the created service environment
2019-09-24 19:32:35 +02:00
func WithEnv(env []string) CreateOption {
return func(o *CreateOptions) {
o.Env = env
}
}
2019-09-24 20:00:11 +02:00
// WithOutput sets the arg output
func WithOutput(out io.Writer) CreateOption {
return func(o *CreateOptions) {
o.Output = out
}
}