app-manager: add Actions
diff --git a/appmanager/actions.go b/appmanager/actions.go
new file mode 100644
index 0000000..88d2551
--- /dev/null
+++ b/appmanager/actions.go
@@ -0,0 +1,34 @@
+package appmanager
+
+import (
+ "io/ioutil"
+ "os"
+
+ "gopkg.in/yaml.v2"
+)
+
+type Action struct {
+ Name string `yaml:"name"`
+ Template string `yaml:"template"`
+}
+
+type Actions struct {
+ Actions []Action `yaml:"actions"`
+}
+
+func FromYaml(str string, out interface{}) error {
+ return yaml.Unmarshal([]byte(str), out)
+}
+
+func FromYamlFile(actionsFile string, out interface{}) error {
+ f, err := os.Open(actionsFile)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+ b, err := ioutil.ReadAll(f)
+ if err != nil {
+ return err
+ }
+ return FromYaml(string(b), out)
+}