mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-29 17:05:46 +08:00
vendor: hashicorp/hcl v2.6.0
full diff: https://github.com/hashicorp/hcl/compare/v2.4.0...v2.6.0 v2.6.0 ------------------------- Enhancements: - hcldec: Add a new Spec, ValidateSpec, which allows custom validation of values at decode-time. Bugs Fixed: - hclsyntax: Fix panic with combination of sequences and null arguments - hclsyntax: Fix handling of unknown values and sequences v2.5.1 ------------------------- - hclwrite: handle legacy dot access of numeric indexes. (#369) - hclwrite: Fix panic for dotted full splat (foo.*) v2.5.0 ------------------------- - hclwrite: Generate multi-line objects and maps. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
a178d05023
commit
37861cb99f
2
go.mod
2
go.mod
@ -30,7 +30,7 @@ require (
|
|||||||
github.com/googleapis/gnostic v0.3.1 // indirect
|
github.com/googleapis/gnostic v0.3.1 // indirect
|
||||||
github.com/gophercloud/gophercloud v0.6.0 // indirect
|
github.com/gophercloud/gophercloud v0.6.0 // indirect
|
||||||
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
|
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
|
||||||
github.com/hashicorp/hcl/v2 v2.4.0
|
github.com/hashicorp/hcl/v2 v2.6.0
|
||||||
github.com/jinzhu/gorm v1.9.2 // indirect
|
github.com/jinzhu/gorm v1.9.2 // indirect
|
||||||
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a // indirect
|
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a // indirect
|
||||||
github.com/jinzhu/now v1.0.0 // indirect
|
github.com/jinzhu/now v1.0.0 // indirect
|
||||||
|
4
go.sum
4
go.sum
@ -273,8 +273,8 @@ github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+
|
|||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||||
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||||
github.com/hashicorp/hcl/v2 v2.4.0 h1:xwVa1aj4nCSoAjUnFPBAIfqlzPgSZEVMdkJv/mgj4jY=
|
github.com/hashicorp/hcl/v2 v2.6.0 h1:3krZOfGY6SziUXa6H9PJU6TyohHn7I+ARYnhbeNBz+o=
|
||||||
github.com/hashicorp/hcl/v2 v2.4.0/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY=
|
github.com/hashicorp/hcl/v2 v2.6.0/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY=
|
||||||
github.com/hashicorp/uuid v0.0.0-20160311170451-ebb0a03e909c/go.mod h1:fHzc09UnyJyqyW+bFuq864eh+wC7dj65aXmXLRe5to0=
|
github.com/hashicorp/uuid v0.0.0-20160311170451-ebb0a03e909c/go.mod h1:fHzc09UnyJyqyW+bFuq864eh+wC7dj65aXmXLRe5to0=
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||||
|
24
vendor/github.com/hashicorp/hcl/v2/CHANGELOG.md
generated
vendored
24
vendor/github.com/hashicorp/hcl/v2/CHANGELOG.md
generated
vendored
@ -1,5 +1,29 @@
|
|||||||
# HCL Changelog
|
# HCL Changelog
|
||||||
|
|
||||||
|
## v2.6.0 (June 4, 2020)
|
||||||
|
|
||||||
|
### Enhancements
|
||||||
|
|
||||||
|
* hcldec: Add a new `Spec`, `ValidateSpec`, which allows custom validation of values at decode-time. ([#387](https://github.com/hashicorp/hcl/pull/387))
|
||||||
|
|
||||||
|
### Bugs Fixed
|
||||||
|
|
||||||
|
* hclsyntax: Fix panic with combination of sequences and null arguments ([#386](https://github.com/hashicorp/hcl/pull/386))
|
||||||
|
* hclsyntax: Fix handling of unknown values and sequences ([#386](https://github.com/hashicorp/hcl/pull/386))
|
||||||
|
|
||||||
|
## v2.5.1 (May 14, 2020)
|
||||||
|
|
||||||
|
### Bugs Fixed
|
||||||
|
|
||||||
|
* hclwrite: handle legacy dot access of numeric indexes. ([#369](https://github.com/hashicorp/hcl/pull/369))
|
||||||
|
* hclwrite: Fix panic for dotted full splat (`foo.*`) ([#374](https://github.com/hashicorp/hcl/pull/374))
|
||||||
|
|
||||||
|
## v2.5.0 (May 6, 2020)
|
||||||
|
|
||||||
|
### Enhancements
|
||||||
|
|
||||||
|
* hclwrite: Generate multi-line objects and maps. ([#372](https://github.com/hashicorp/hcl/pull/372))
|
||||||
|
|
||||||
## v2.4.0 (Apr 13, 2020)
|
## v2.4.0 (Apr 13, 2020)
|
||||||
|
|
||||||
### Enhancements
|
### Enhancements
|
||||||
|
4
vendor/github.com/hashicorp/hcl/v2/diagnostic.go
generated
vendored
4
vendor/github.com/hashicorp/hcl/v2/diagnostic.go
generated
vendored
@ -22,14 +22,14 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Diagnostic represents information to be presented to a user about an
|
// Diagnostic represents information to be presented to a user about an
|
||||||
// error or anomoly in parsing or evaluating configuration.
|
// error or anomaly in parsing or evaluating configuration.
|
||||||
type Diagnostic struct {
|
type Diagnostic struct {
|
||||||
Severity DiagnosticSeverity
|
Severity DiagnosticSeverity
|
||||||
|
|
||||||
// Summary and Detail contain the English-language description of the
|
// Summary and Detail contain the English-language description of the
|
||||||
// problem. Summary is a terse description of the general problem and
|
// problem. Summary is a terse description of the general problem and
|
||||||
// detail is a more elaborate, often-multi-sentence description of
|
// detail is a more elaborate, often-multi-sentence description of
|
||||||
// the probem and what might be done to solve it.
|
// the problem and what might be done to solve it.
|
||||||
Summary string
|
Summary string
|
||||||
Detail string
|
Detail string
|
||||||
|
|
||||||
|
61
vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression.go
generated
vendored
61
vendor/github.com/hashicorp/hcl/v2/hclsyntax/expression.go
generated
vendored
@ -260,6 +260,20 @@ func (e *FunctionCallExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnosti
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch {
|
switch {
|
||||||
|
case expandVal.Type().Equals(cty.DynamicPseudoType):
|
||||||
|
if expandVal.IsNull() {
|
||||||
|
diags = append(diags, &hcl.Diagnostic{
|
||||||
|
Severity: hcl.DiagError,
|
||||||
|
Summary: "Invalid expanding argument value",
|
||||||
|
Detail: "The expanding argument (indicated by ...) must not be null.",
|
||||||
|
Subject: expandExpr.Range().Ptr(),
|
||||||
|
Context: e.Range().Ptr(),
|
||||||
|
Expression: expandExpr,
|
||||||
|
EvalContext: ctx,
|
||||||
|
})
|
||||||
|
return cty.DynamicVal, diags
|
||||||
|
}
|
||||||
|
return cty.DynamicVal, diags
|
||||||
case expandVal.Type().IsTupleType() || expandVal.Type().IsListType() || expandVal.Type().IsSetType():
|
case expandVal.Type().IsTupleType() || expandVal.Type().IsListType() || expandVal.Type().IsSetType():
|
||||||
if expandVal.IsNull() {
|
if expandVal.IsNull() {
|
||||||
diags = append(diags, &hcl.Diagnostic{
|
diags = append(diags, &hcl.Diagnostic{
|
||||||
@ -406,22 +420,39 @@ func (e *FunctionCallExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnosti
|
|||||||
} else {
|
} else {
|
||||||
param = varParam
|
param = varParam
|
||||||
}
|
}
|
||||||
argExpr := e.Args[i]
|
|
||||||
|
|
||||||
// TODO: we should also unpick a PathError here and show the
|
// this can happen if an argument is (incorrectly) null.
|
||||||
// path to the deep value where the error was detected.
|
if i > len(e.Args)-1 {
|
||||||
diags = append(diags, &hcl.Diagnostic{
|
diags = append(diags, &hcl.Diagnostic{
|
||||||
Severity: hcl.DiagError,
|
Severity: hcl.DiagError,
|
||||||
Summary: "Invalid function argument",
|
Summary: "Invalid function argument",
|
||||||
Detail: fmt.Sprintf(
|
Detail: fmt.Sprintf(
|
||||||
"Invalid value for %q parameter: %s.",
|
"Invalid value for %q parameter: %s.",
|
||||||
param.Name, err,
|
param.Name, err,
|
||||||
),
|
),
|
||||||
Subject: argExpr.StartRange().Ptr(),
|
Subject: args[len(params)].StartRange().Ptr(),
|
||||||
Context: e.Range().Ptr(),
|
Context: e.Range().Ptr(),
|
||||||
Expression: argExpr,
|
Expression: e,
|
||||||
EvalContext: ctx,
|
EvalContext: ctx,
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
argExpr := e.Args[i]
|
||||||
|
|
||||||
|
// TODO: we should also unpick a PathError here and show the
|
||||||
|
// path to the deep value where the error was detected.
|
||||||
|
diags = append(diags, &hcl.Diagnostic{
|
||||||
|
Severity: hcl.DiagError,
|
||||||
|
Summary: "Invalid function argument",
|
||||||
|
Detail: fmt.Sprintf(
|
||||||
|
"Invalid value for %q parameter: %s.",
|
||||||
|
param.Name, err,
|
||||||
|
),
|
||||||
|
Subject: argExpr.StartRange().Ptr(),
|
||||||
|
Context: e.Range().Ptr(),
|
||||||
|
Expression: argExpr,
|
||||||
|
EvalContext: ctx,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
diags = append(diags, &hcl.Diagnostic{
|
diags = append(diags, &hcl.Diagnostic{
|
||||||
|
1
vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser.go
generated
vendored
1
vendor/github.com/hashicorp/hcl/v2/hclsyntax/parser.go
generated
vendored
@ -670,6 +670,7 @@ Traversal:
|
|||||||
trav := make(hcl.Traversal, 0, 1)
|
trav := make(hcl.Traversal, 0, 1)
|
||||||
var firstRange, lastRange hcl.Range
|
var firstRange, lastRange hcl.Range
|
||||||
firstRange = p.NextRange()
|
firstRange = p.NextRange()
|
||||||
|
lastRange = marker.Range
|
||||||
for p.Peek().Type == TokenDot {
|
for p.Peek().Type == TokenDot {
|
||||||
dot := p.Read()
|
dot := p.Read()
|
||||||
|
|
||||||
|
16
vendor/github.com/hashicorp/hcl/v2/hclwrite/generate.go
generated
vendored
16
vendor/github.com/hashicorp/hcl/v2/hclwrite/generate.go
generated
vendored
@ -119,15 +119,15 @@ func appendTokensForValue(val cty.Value, toks Tokens) Tokens {
|
|||||||
Type: hclsyntax.TokenOBrace,
|
Type: hclsyntax.TokenOBrace,
|
||||||
Bytes: []byte{'{'},
|
Bytes: []byte{'{'},
|
||||||
})
|
})
|
||||||
|
if val.LengthInt() > 0 {
|
||||||
|
toks = append(toks, &Token{
|
||||||
|
Type: hclsyntax.TokenNewline,
|
||||||
|
Bytes: []byte{'\n'},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
i := 0
|
i := 0
|
||||||
for it := val.ElementIterator(); it.Next(); {
|
for it := val.ElementIterator(); it.Next(); {
|
||||||
if i > 0 {
|
|
||||||
toks = append(toks, &Token{
|
|
||||||
Type: hclsyntax.TokenComma,
|
|
||||||
Bytes: []byte{','},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
eKey, eVal := it.Element()
|
eKey, eVal := it.Element()
|
||||||
if hclsyntax.ValidIdentifier(eKey.AsString()) {
|
if hclsyntax.ValidIdentifier(eKey.AsString()) {
|
||||||
toks = append(toks, &Token{
|
toks = append(toks, &Token{
|
||||||
@ -142,6 +142,10 @@ func appendTokensForValue(val cty.Value, toks Tokens) Tokens {
|
|||||||
Bytes: []byte{'='},
|
Bytes: []byte{'='},
|
||||||
})
|
})
|
||||||
toks = appendTokensForValue(eVal, toks)
|
toks = appendTokensForValue(eVal, toks)
|
||||||
|
toks = append(toks, &Token{
|
||||||
|
Type: hclsyntax.TokenNewline,
|
||||||
|
Bytes: []byte{'\n'},
|
||||||
|
})
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
|
||||||
|
27
vendor/github.com/hashicorp/hcl/v2/hclwrite/parser.go
generated
vendored
27
vendor/github.com/hashicorp/hcl/v2/hclwrite/parser.go
generated
vendored
@ -88,6 +88,16 @@ func (it inputTokens) PartitionType(ty hclsyntax.TokenType) (before, within, aft
|
|||||||
panic(fmt.Sprintf("didn't find any token of type %s", ty))
|
panic(fmt.Sprintf("didn't find any token of type %s", ty))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (it inputTokens) PartitionTypeOk(ty hclsyntax.TokenType) (before, within, after inputTokens, ok bool) {
|
||||||
|
for i, t := range it.writerTokens {
|
||||||
|
if t.Type == ty {
|
||||||
|
return it.Slice(0, i), it.Slice(i, i+1), it.Slice(i+1, len(it.nativeTokens)), true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return inputTokens{}, inputTokens{}, inputTokens{}, false
|
||||||
|
}
|
||||||
|
|
||||||
func (it inputTokens) PartitionTypeSingle(ty hclsyntax.TokenType) (before inputTokens, found *Token, after inputTokens) {
|
func (it inputTokens) PartitionTypeSingle(ty hclsyntax.TokenType) (before inputTokens, found *Token, after inputTokens) {
|
||||||
before, within, after := it.PartitionType(ty)
|
before, within, after := it.PartitionType(ty)
|
||||||
if within.Len() != 1 {
|
if within.Len() != 1 {
|
||||||
@ -404,6 +414,19 @@ func parseTraversalStep(nativeStep hcl.Traverser, from inputTokens) (before inpu
|
|||||||
children = step.inTree.children
|
children = step.inTree.children
|
||||||
before, from, after = from.Partition(nativeStep.SourceRange())
|
before, from, after = from.Partition(nativeStep.SourceRange())
|
||||||
|
|
||||||
|
if inBefore, dot, from, ok := from.PartitionTypeOk(hclsyntax.TokenDot); ok {
|
||||||
|
children.AppendUnstructuredTokens(inBefore.Tokens())
|
||||||
|
children.AppendUnstructuredTokens(dot.Tokens())
|
||||||
|
|
||||||
|
valBefore, valToken, valAfter := from.PartitionTypeSingle(hclsyntax.TokenNumberLit)
|
||||||
|
children.AppendUnstructuredTokens(valBefore.Tokens())
|
||||||
|
key := newNumber(valToken)
|
||||||
|
step.key = children.Append(key)
|
||||||
|
children.AppendUnstructuredTokens(valAfter.Tokens())
|
||||||
|
|
||||||
|
return before, newNode(step), after
|
||||||
|
}
|
||||||
|
|
||||||
var inBefore, oBrack, keyTokens, cBrack inputTokens
|
var inBefore, oBrack, keyTokens, cBrack inputTokens
|
||||||
inBefore, oBrack, from = from.PartitionType(hclsyntax.TokenOBrack)
|
inBefore, oBrack, from = from.PartitionType(hclsyntax.TokenOBrack)
|
||||||
children.AppendUnstructuredTokens(inBefore.Tokens())
|
children.AppendUnstructuredTokens(inBefore.Tokens())
|
||||||
@ -498,8 +521,8 @@ func writerTokens(nativeTokens hclsyntax.Tokens) Tokens {
|
|||||||
// The tokens are assumed to be in source order and non-overlapping, which
|
// The tokens are assumed to be in source order and non-overlapping, which
|
||||||
// will be true if the token sequence from the scanner is used directly.
|
// will be true if the token sequence from the scanner is used directly.
|
||||||
func partitionTokens(toks hclsyntax.Tokens, rng hcl.Range) (start, end int) {
|
func partitionTokens(toks hclsyntax.Tokens, rng hcl.Range) (start, end int) {
|
||||||
// We us a linear search here because we assume tha in most cases our
|
// We use a linear search here because we assume that in most cases our
|
||||||
// target range is close to the beginning of the sequence, and the seqences
|
// target range is close to the beginning of the sequence, and the sequences
|
||||||
// are generally small for most reasonable files anyway.
|
// are generally small for most reasonable files anyway.
|
||||||
for i := 0; ; i++ {
|
for i := 0; ; i++ {
|
||||||
if i >= len(toks) {
|
if i >= len(toks) {
|
||||||
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@ -208,7 +208,7 @@ github.com/gorilla/mux
|
|||||||
github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc
|
github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc
|
||||||
# github.com/hashicorp/golang-lru v0.5.1
|
# github.com/hashicorp/golang-lru v0.5.1
|
||||||
github.com/hashicorp/golang-lru/simplelru
|
github.com/hashicorp/golang-lru/simplelru
|
||||||
# github.com/hashicorp/hcl/v2 v2.4.0
|
# github.com/hashicorp/hcl/v2 v2.6.0
|
||||||
github.com/hashicorp/hcl/v2
|
github.com/hashicorp/hcl/v2
|
||||||
github.com/hashicorp/hcl/v2/ext/customdecode
|
github.com/hashicorp/hcl/v2/ext/customdecode
|
||||||
github.com/hashicorp/hcl/v2/ext/userfunc
|
github.com/hashicorp/hcl/v2/ext/userfunc
|
||||||
|
Loading…
x
Reference in New Issue
Block a user