summaryrefslogtreecommitdiff
path: root/plugins/service/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/service/config.go')
-rw-r--r--plugins/service/config.go34
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..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
+ }
+ }
+ }
+}