github.com/YousefHaggyHeroku/pack@v1.5.5/internal/build/phase_factory.go (about) 1 package build 2 3 import "context" 4 5 type RunnerCleaner interface { 6 Run(ctx context.Context) error 7 Cleanup() error 8 } 9 10 type PhaseFactory interface { 11 New(provider *PhaseConfigProvider) RunnerCleaner 12 } 13 14 type DefaultPhaseFactory struct { 15 lifecycleExec *LifecycleExecution 16 } 17 18 type PhaseFactoryCreator func(*LifecycleExecution) PhaseFactory 19 20 func NewDefaultPhaseFactory(lifecycleExec *LifecycleExecution) PhaseFactory { 21 return &DefaultPhaseFactory{lifecycleExec: lifecycleExec} 22 } 23 24 func (m *DefaultPhaseFactory) New(provider *PhaseConfigProvider) RunnerCleaner { 25 return &Phase{ 26 ctrConf: provider.ContainerConfig(), 27 hostConf: provider.HostConfig(), 28 name: provider.Name(), 29 docker: m.lifecycleExec.docker, 30 infoWriter: provider.InfoWriter(), 31 errorWriter: provider.ErrorWriter(), 32 uid: m.lifecycleExec.opts.Builder.UID(), 33 gid: m.lifecycleExec.opts.Builder.GID(), 34 appPath: m.lifecycleExec.opts.AppPath, 35 containerOps: provider.containerOps, 36 fileFilter: m.lifecycleExec.opts.FileFilter, 37 } 38 }