38 lines
805 B
Go
38 lines
805 B
Go
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
|
|
}
|
|
}
|