blob: 3eb88d9fd321af0da212c7cae8db25b68d049cf0 [file] [log] [blame]
giolekva6d464592020-05-13 20:12:18 +04001package appmanager
2
3import (
4 "io/ioutil"
5 "os"
6
7 "gopkg.in/yaml.v2"
8)
9
10type TriggerOn struct {
11 Type string `yaml:"type"`
12 Event string `yaml:"event"`
13}
14
15type Trigger struct {
16 Name string `yaml:"name"`
17 TriggerOn TriggerOn `yaml:"triggerOn"`
18 Template string `yaml:"template"`
19}
20
21type Triggers struct {
22 Triggers []Trigger `yaml:"triggers"`
23}
24
25func TriggersFromYaml(str string) (*Triggers, error) {
26 var s Triggers
27 err := yaml.Unmarshal([]byte(str), &s)
28 if err != nil {
29 return nil, err
30 }
31 return &s, nil
32}
33
34func ReadTriggers(actionsFile string) (*Triggers, error) {
35 f, err := os.Open(actionsFile)
36 if err != nil {
37 return nil, err
38 }
39 defer f.Close()
40 b, err := ioutil.ReadAll(f)
41 if err != nil {
42 return nil, err
43 }
44 return TriggersFromYaml(string(b))
45}