summaryrefslogtreecommitdiff
path: root/internal/resource/resource.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-07-05 10:48:52 +0300
committerPaul Buetow <paul@buetow.org>2026-07-05 10:48:52 +0300
commit1b97ed3ca759a530585a520c8edd01e26bdee582 (patch)
tree02cc4abd4374a515a2ac9df592144839bbc148b4 /internal/resource/resource.go
parent7fdcb5ed7639508e05c9a3851704cf1de9f4476a (diff)
initial work for a central applier algo
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{}),
}