summaryrefslogtreecommitdiff
path: root/internal/resource/resource.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/resource/resource.go')
-rw-r--r--internal/resource/resource.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/internal/resource/resource.go b/internal/resource/resource.go
index f7951c3..4e72485 100644
--- a/internal/resource/resource.go
+++ b/internal/resource/resource.go
@@ -5,16 +5,28 @@ import (
"log"
)
+type Applier interface {
+ Apply() error
+}
+
+type ApplierFunc func() error
+
+func (f ApplierFunc) Apply() error {
+ return f()
+}
+
type Resource struct {
Type string
Name string
+ Apply Applier
dependsOn map[string]struct{}
}
-func Register(type_, name string) Resource {
+func Register(type_, name string, apply Applier) Resource {
r := Resource{
Type: type_,
Name: name,
+ Apply: apply,
dependsOn: make(map[string]struct{}),
}