mirror of
https://github.com/hashicorp/packer.git
synced 2026-10-01 20:24:00 -04:00
* Drop the iso_checksum_type & iso_checksum_url fields
In favor of simply using iso_checksum that will know what to do.
* fix after master merge
* Update builder_test.go
* Update builder_test.go
* Update builder_test.go
* Update builder_test.go
* Update builder_test.go
* remove checksum lowercasing tests
* Update builder_test.go
* Update builder_test.go
* better docs
* Update builder_test.go
* even better docs
* Update config.go
* Update builder_test.go
* Update step_create_vmx_test.go
* make generate
* better docs
* fix imports
* up tests
* Update _ISOConfig-required.html.md
* Update builder_test.go
* don't use sha1.Sum("none") as a caching path
* Update builder_test.go
* better docs
* Update iso_config_test.go
remove ISOChecksumType/ISOChecksumURL references
* Update step_download_test.go
* add iso_checksum_url and iso_checksum_type fixers + tests
* add concrete examples of checksum values
* add examples of checksumming from local file
* update go-getter dep
* up deps
* use new go-getter version
* up ESX5Driver.VerifyChecksum: use go-getter's checksumming
* ISOConfig.Prepare: get checksum there in case we need it as a string in ESX5Driver.VerifyChecksum
* Update iso_config.go
* get go-getter from v2 branch
* Update driver_esx5.go
add more comments
* Update driver_esx5.go
* show better error message when the checksum is invalid
* Update builder_test.go
put in a valid checksum to fix tests, checksum is md5("packer")
* Update builder_test.go
test invalid and valid checksum
* more test updating
* fix default md5 string to be a valid md5
* TestChecksumFileNameMixedCaseBug: use 'file:' prefix for file checksumming
* Update iso_config_test.go
* Update iso_config_test.go
* Update builder_test.go
* Update builder_test.go
* Update builder_test.go
* Update CHANGELOG.md
* Update CHANGELOG.md
* Update go.mod
* Update go.mod
* Update CHANGELOG.md
68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
package edit
|
|
|
|
import (
|
|
"bytes"
|
|
"go/ast"
|
|
"go/format"
|
|
"go/token"
|
|
|
|
"golang.org/x/tools/go/analysis"
|
|
"honnef.co/go/tools/pattern"
|
|
)
|
|
|
|
type Ranger interface {
|
|
Pos() token.Pos
|
|
End() token.Pos
|
|
}
|
|
|
|
type Range [2]token.Pos
|
|
|
|
func (r Range) Pos() token.Pos { return r[0] }
|
|
func (r Range) End() token.Pos { return r[1] }
|
|
|
|
func ReplaceWithString(fset *token.FileSet, old Ranger, new string) analysis.TextEdit {
|
|
return analysis.TextEdit{
|
|
Pos: old.Pos(),
|
|
End: old.End(),
|
|
NewText: []byte(new),
|
|
}
|
|
}
|
|
|
|
func ReplaceWithNode(fset *token.FileSet, old Ranger, new ast.Node) analysis.TextEdit {
|
|
buf := &bytes.Buffer{}
|
|
if err := format.Node(buf, fset, new); err != nil {
|
|
panic("internal error: " + err.Error())
|
|
}
|
|
return analysis.TextEdit{
|
|
Pos: old.Pos(),
|
|
End: old.End(),
|
|
NewText: buf.Bytes(),
|
|
}
|
|
}
|
|
|
|
func ReplaceWithPattern(pass *analysis.Pass, after pattern.Pattern, state pattern.State, node Ranger) analysis.TextEdit {
|
|
r := pattern.NodeToAST(after.Root, state)
|
|
buf := &bytes.Buffer{}
|
|
format.Node(buf, pass.Fset, r)
|
|
return analysis.TextEdit{
|
|
Pos: node.Pos(),
|
|
End: node.End(),
|
|
NewText: buf.Bytes(),
|
|
}
|
|
}
|
|
|
|
func Delete(old Ranger) analysis.TextEdit {
|
|
return analysis.TextEdit{
|
|
Pos: old.Pos(),
|
|
End: old.End(),
|
|
NewText: nil,
|
|
}
|
|
}
|
|
|
|
func Fix(msg string, edits ...analysis.TextEdit) analysis.SuggestedFix {
|
|
return analysis.SuggestedFix{
|
|
Message: msg,
|
|
TextEdits: edits,
|
|
}
|
|
}
|