package local import ( "fmt" "code.icb4dc0.de/buildr/buildr/modules/state" "code.icb4dc0.de/buildr/buildr/internal/execution" "code.icb4dc0.de/buildr/buildr/modules" ) var _ execution.TaskProvider = (*taskProvider)(nil) func Provider(stateStore state.Store) execution.TaskProvider { return taskProvider{ stateStore: stateStore, } } type taskProvider struct { stateStore state.Store } func (taskProvider) CanProvide(m modules.ModuleWithMeta) bool { return m.ContainerSpec() == nil } func (p taskProvider) Create(m modules.ModuleWithMeta) (execution.Task, error) { if m.ContainerSpec() != nil { return nil, fmt.Errorf("module %v has a container spec - should be handled differently", m.Name()) } else { return &localTask{ module: m, stateStore: p.stateStore, }, nil } }