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  }