diff options
Diffstat (limited to 'internal/resource/resource.go')
| -rw-r--r-- | internal/resource/resource.go | 14 |
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{}), } |
