forked from vmware-archive/atc
/
factory.go
65 lines (55 loc) · 1.33 KB
/
factory.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package exec
import (
"io"
"code.cloudfoundry.org/lager"
"github.com/concourse/atc"
"github.com/concourse/atc/db"
)
//go:generate counterfeiter . Factory
// Factory is used when building up the steps for a build.
type Factory interface {
// Get constructs a ActionsStep factory for Get.
Get(
lager.Logger,
atc.Plan,
db.Build,
StepMetadata,
db.ContainerMetadata,
ActionsBuildEventsDelegate,
ImageFetchingDelegate,
) StepFactory
// Put constructs a ActionsStep factory for Put.
Put(
lager.Logger,
atc.Plan,
db.Build,
StepMetadata,
db.ContainerMetadata,
ActionsBuildEventsDelegate,
ImageFetchingDelegate,
) StepFactory
// Task constructs a ActionsStep factory for Task.
Task(
lager.Logger,
atc.Plan,
db.Build,
db.ContainerMetadata,
TaskBuildEventsDelegate,
ActionsBuildEventsDelegate,
ImageFetchingDelegate,
) StepFactory
}
// StepMetadata is used to inject metadata to make available to the step when
// it's running.
type StepMetadata interface {
Env() []string
}
//go:generate counterfeiter . ImageFetchingDelegate
type ImageFetchingDelegate interface {
ImageVersionDetermined(*db.UsedResourceCache) error
Stdout() io.Writer
Stderr() io.Writer
}
// Privileged is used to indicate whether the given step should run with
// special privileges (i.e. as an administrator user).
type Privileged bool