mirror of
https://github.com/kairos-io/kairos-agent.git
synced 2025-06-03 01:44:53 +00:00
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
package agent
|
|
|
|
// Options yields the options for the running agent.
|
|
type Options struct {
|
|
APIAddress string
|
|
Dir []string
|
|
Force bool
|
|
Restart bool
|
|
}
|
|
|
|
// Apply applies option to the options struct.
|
|
func (o *Options) Apply(opts ...Option) error {
|
|
for _, oo := range opts {
|
|
if err := oo(o); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// Option is a generic option for the Agent.
|
|
type Option func(o *Options) error
|
|
|
|
// ForceAgent forces the agent to run.
|
|
var ForceAgent Option = func(o *Options) error {
|
|
o.Force = true
|
|
return nil
|
|
}
|
|
|
|
// RestartAgent makes the agent restart on error.
|
|
var RestartAgent Option = func(o *Options) error {
|
|
o.Restart = true
|
|
return nil
|
|
}
|
|
|
|
// WithAPI sets the API address used to talk to EdgeVPN and co-ordinate node bootstrapping.
|
|
func WithAPI(address string) Option {
|
|
return func(o *Options) error {
|
|
o.APIAddress = address
|
|
return nil
|
|
}
|
|
}
|
|
|
|
// WithDirectory sets the Agent config directories.
|
|
func WithDirectory(dirs ...string) Option {
|
|
return func(o *Options) error {
|
|
o.Dir = dirs
|
|
return nil
|
|
}
|
|
}
|