From 4e6dfc00c5619c4e749602d345fd2829ab0a3f07 Mon Sep 17 00:00:00 2001 From: Valery Piashchynski Date: Sun, 18 Apr 2021 17:31:52 +0300 Subject: - Draft implementation of the service plugin --- plugins/service/config.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 plugins/service/config.go (limited to 'plugins/service/config.go') diff --git a/plugins/service/config.go b/plugins/service/config.go new file mode 100644 index 00000000..b1099e06 --- /dev/null +++ b/plugins/service/config.go @@ -0,0 +1,34 @@ +package service + +import "time" + +// Service represents particular service configuration +type Service struct { + Command string `mapstructure:"command"` + ProcessNum int `mapstructure:"process_num"` + ExecTimeout time.Duration `mapstructure:"exec_timeout"` + RestartAfterExit bool `mapstructure:"restart_after_exit"` + RestartDelay time.Duration `mapstructure:"restart_delay"` +} + +// Config for the services +type Config struct { + Services map[string]Service `mapstructure:"service"` +} + +func (c *Config) InitDefault() { + if len(c.Services) > 0 { + for k, v := range c.Services { + if v.ProcessNum == 0 { + val := c.Services[k] + val.ProcessNum = 1 + c.Services[k] = val + } + if v.RestartDelay == 0 { + val := c.Services[k] + val.RestartDelay = time.Minute + c.Services[k] = val + } + } + } +} -- cgit v1.2.3