buildx/bake/hcl.go
Patrick Van Stee a520de447e Provide current env as variables in eval context
Signed-off-by: Patrick Van Stee <patrick@vanstee.me>
2020-04-29 08:51:26 -04:00

29 lines
542 B
Go

package bake
import (
"os"
"strings"
hcl "github.com/hashicorp/hcl/v2"
"github.com/hashicorp/hcl/v2/hclsimple"
"github.com/zclconf/go-cty/cty"
)
func ParseHCL(dt []byte, fn string) (*Config, error) {
variables := make(map[string]cty.Value)
for _, env := range os.Environ() {
parts := strings.SplitN(env, "=", 2)
variables[parts[0]] = cty.StringVal(parts[1])
}
ctx := &hcl.EvalContext{
Variables: variables,
}
var c Config
if err := hclsimple.Decode(fn, dt, ctx, &c); err != nil {
return nil, err
}
return &c, nil
}