mirror of
https://github.com/hashicorp/packer.git
synced 2026-04-22 22:59:46 -04:00
fail prepare if hash not found
This commit is contained in:
parent
6722a6ba0c
commit
fbd621d227
1 changed files with 21 additions and 22 deletions
|
|
@ -37,6 +37,17 @@ type outputPathTemplate struct {
|
|||
HashType string
|
||||
}
|
||||
|
||||
func getHashMap() map[string]func() hash.Hash {
|
||||
return map[string]func() hash.Hash{
|
||||
"md5": func() hash.Hash { return md5.New() },
|
||||
"sha1": func() hash.Hash { return sha1.New() },
|
||||
"sha224": func() hash.Hash { return sha256.New224() },
|
||||
"sha256": func() hash.Hash { return sha256.New() },
|
||||
"sha384": func() hash.Hash { return sha512.New384() },
|
||||
"sha512": func() hash.Hash { return sha512.New() },
|
||||
}
|
||||
}
|
||||
|
||||
func (p *PostProcessor) Configure(raws ...interface{}) error {
|
||||
err := config.Decode(&p.config, &config.DecodeOpts{
|
||||
Interpolate: true,
|
||||
|
|
@ -47,17 +58,24 @@ func (p *PostProcessor) Configure(raws ...interface{}) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
errs := new(packer.MultiError)
|
||||
|
||||
if p.config.ChecksumTypes == nil {
|
||||
p.config.ChecksumTypes = []string{"md5"}
|
||||
}
|
||||
|
||||
hashMap := getHashMap()
|
||||
for _, k := range p.config.ChecksumTypes {
|
||||
if _, ok := hashMap[k]; !ok {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
fmt.Errorf("Unrecognized checksum type: %s", k))
|
||||
}
|
||||
}
|
||||
|
||||
if p.config.OutputPath == "" {
|
||||
p.config.OutputPath = "packer_{{.BuildName}}_{{.BuilderType}}_{{.HashType}}.checksum"
|
||||
}
|
||||
|
||||
errs := new(packer.MultiError)
|
||||
|
||||
if err = interpolate.Validate(p.config.OutputPath, &p.config.ctx); err != nil {
|
||||
errs = packer.MultiErrorAppend(
|
||||
errs, fmt.Errorf("Error parsing target template: %s", err))
|
||||
|
|
@ -70,25 +88,6 @@ func (p *PostProcessor) Configure(raws ...interface{}) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func getHash(t string) hash.Hash {
|
||||
var h hash.Hash
|
||||
switch t {
|
||||
case "md5":
|
||||
h = md5.New()
|
||||
case "sha1":
|
||||
h = sha1.New()
|
||||
case "sha224":
|
||||
h = sha256.New224()
|
||||
case "sha256":
|
||||
h = sha256.New()
|
||||
case "sha384":
|
||||
h = sha512.New384()
|
||||
case "sha512":
|
||||
h = sha512.New()
|
||||
}
|
||||
return h
|
||||
}
|
||||
|
||||
func (p *PostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifact) (packer.Artifact, bool, error) {
|
||||
files := artifact.Files()
|
||||
var h hash.Hash
|
||||
|
|
@ -101,7 +100,7 @@ func (p *PostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifact) (pac
|
|||
}
|
||||
|
||||
for _, ct := range p.config.ChecksumTypes {
|
||||
h = getHash(ct)
|
||||
h = getHashMap()[ct]()
|
||||
opTpl.HashType = ct
|
||||
p.config.ctx.Data = &opTpl
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue