Files
Packer-Cn/packer/post_processor.go
T

27 lines
1.2 KiB
Go
Raw Normal View History

2013-06-17 11:56:26 -07:00
package packer
2019-03-22 14:56:02 +01:00
import "context"
2013-06-17 11:56:26 -07:00
// A PostProcessor is responsible for taking an artifact of a build
// and doing some sort of post-processing to turn this into another
// artifact. An example of a post-processor would be something that takes
// the result of a build, compresses it, and returns a new artifact containing
// a single file of the prior artifact compressed.
type PostProcessor interface {
2019-12-17 11:25:56 +01:00
HCL2Speccer
2013-06-17 11:56:26 -07:00
// Configure is responsible for setting up configuration, storing
// the state for later, and returning and errors, such as validation
// errors.
Configure(...interface{}) error
2013-06-17 11:56:26 -07:00
// PostProcess takes a previously created Artifact and produces another
// Artifact. If an error occurs, it should return that error. If `keep` is
// true, then the previous artifact defaults to being kept if user has not
// given a value to keep_input_artifact. If forceOverride is true, then any
// user input for keep_input_artifact is ignored and the artifact is either
// kept or discarded according to the value set in `keep`.
// PostProcess is cancellable using context
PostProcess(context.Context, Ui, Artifact) (a Artifact, keep bool, forceOverride bool, err error)
2013-06-17 11:56:26 -07:00
}