This commit updates the implementation to use a native docker client as opposed to calling an external executable.
33 lines
760 B
Go
33 lines
760 B
Go
package barrel
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/FAU-CDI/wisski-distillery/internal/status"
|
|
"github.com/FAU-CDI/wisski-distillery/internal/wisski/ingredient"
|
|
)
|
|
|
|
// Running checks if this WissKI is currently running.
|
|
func (barrel *Barrel) Running(ctx context.Context) (bool, error) {
|
|
containers, err := barrel.Docker.Containers(ctx, barrel.Stack().Dir)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
return len(containers) > 0, nil
|
|
}
|
|
|
|
type RunningFetcher struct {
|
|
ingredient.Base
|
|
Dependencies struct {
|
|
Barrel *Barrel
|
|
}
|
|
}
|
|
|
|
var (
|
|
_ ingredient.WissKIFetcher = (*RunningFetcher)(nil)
|
|
)
|
|
|
|
func (rf *RunningFetcher) Fetch(flags ingredient.FetcherFlags, info *status.WissKI) (err error) {
|
|
info.Running, err = rf.Dependencies.Barrel.Running(flags.Context)
|
|
return
|
|
}
|