command-runner/internal/containers/service.go (21 lines of code) (raw):
package containers
import (
"context"
"github.com/aws/codecatalyst-runner-cli/command-runner/internal/containers/docker"
"github.com/aws/codecatalyst-runner-cli/command-runner/internal/containers/finch"
"github.com/aws/codecatalyst-runner-cli/command-runner/internal/containers/types"
)
// Finch service provider
var Finch = &finch.ServiceProvider{}
// Docker service provider
var Docker = &docker.ServiceProvider{}
var providers = []types.ContainerServiceProvider{
Finch,
Docker,
}
// DefaultServiceProvider uses the first available service provider
func DefaultServiceProvider(ctx context.Context) types.ContainerServiceProvider {
for _, provider := range providers {
if provider.Available(ctx) {
return provider
}
}
return nil
}