diff options
Diffstat (limited to 'plugins/service/config.go')
-rw-r--r-- | plugins/service/config.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/service/config.go b/plugins/service/config.go new file mode 100644 index 00000000..871c8f76 --- /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"` + RemainAfterExit bool `mapstructure:"remain_after_exit"` + RestartSec uint64 `mapstructure:"restart_sec"` +} + +// 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.RestartSec == 0 { + val := c.Services[k] + val.RestartSec = 30 + c.Services[k] = val + } + } + } +} |