mirror of
https://github.com/crazy-max/diun.git
synced 2025-12-21 13:23:09 +01:00
chore(deps): bump github.com/moby/buildkit to 0.17.3
This commit is contained in:
@@ -14,7 +14,7 @@ import (
|
||||
type Client struct {
|
||||
ast *parser.Node
|
||||
stages []instructions.Stage
|
||||
metaArgs []instructions.KeyValuePairOptional
|
||||
metaArgs shell.EnvGetter
|
||||
shlex *shell.Lex
|
||||
}
|
||||
|
||||
@@ -35,26 +35,28 @@ func New(opts Options) (*Client, error) {
|
||||
return nil, errors.Wrapf(err, "cannot parse Dockerfile %s", opts.Filename)
|
||||
}
|
||||
|
||||
stages, metaArgs, err := instructions.Parse(parsed.AST)
|
||||
stages, metaArgs, err := instructions.Parse(parsed.AST, nil)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "cannot parse stages for Dockerfile %s", opts.Filename)
|
||||
}
|
||||
|
||||
var kvpoArgs []instructions.KeyValuePairOptional
|
||||
var kvpoArgs []string
|
||||
shlex := shell.NewLex(parsed.EscapeToken)
|
||||
for _, cmd := range metaArgs {
|
||||
for _, metaArg := range cmd.Args {
|
||||
if metaArg.Value != nil {
|
||||
*metaArg.Value, _ = shlex.ProcessWordWithMap(*metaArg.Value, metaArgsToMap(kvpoArgs))
|
||||
if name, _, err := shlex.ProcessWord(*metaArg.Value, shell.EnvsFromSlice(kvpoArgs)); err == nil {
|
||||
metaArg.Value = &name
|
||||
}
|
||||
}
|
||||
kvpoArgs = append(kvpoArgs, metaArg)
|
||||
kvpoArgs = append(kvpoArgs, metaArg.String())
|
||||
}
|
||||
}
|
||||
|
||||
return &Client{
|
||||
ast: parsed.AST,
|
||||
stages: stages,
|
||||
metaArgs: kvpoArgs,
|
||||
metaArgs: shell.EnvsFromSlice(kvpoArgs),
|
||||
shlex: shlex,
|
||||
}, nil
|
||||
}
|
||||
@@ -67,11 +69,3 @@ func (c *Client) isStageName(name string) bool {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func metaArgsToMap(metaArgs []instructions.KeyValuePairOptional) map[string]string {
|
||||
m := map[string]string{}
|
||||
for _, arg := range metaArgs {
|
||||
m[arg.Key] = arg.ValueString()
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ func (c *Client) FromImages() (Images, error) {
|
||||
return nil, errors.Wrapf(err, "cannot parse instruction")
|
||||
}
|
||||
if baseName := ins.(*instructions.Stage).BaseName; baseName != "scratch" {
|
||||
name, err := c.shlex.ProcessWordWithMap(baseName, metaArgsToMap(c.metaArgs))
|
||||
name, _, err := c.shlex.ProcessWord(baseName, c.metaArgs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -59,7 +59,7 @@ func (c *Client) FromImages() (Images, error) {
|
||||
return nil, errors.Wrapf(err, "cannot parse command")
|
||||
}
|
||||
if copyFrom := cmd.(*instructions.CopyCommand).From; copyFrom != "null" {
|
||||
name, err := c.shlex.ProcessWordWithMap(copyFrom, metaArgsToMap(c.metaArgs))
|
||||
name, _, err := c.shlex.ProcessWord(copyFrom, c.metaArgs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -85,7 +85,7 @@ func (c *Client) FromImages() (Images, error) {
|
||||
if mount.Type != instructions.MountTypeBind || len(mount.From) == 0 {
|
||||
continue
|
||||
}
|
||||
name, err := c.shlex.ProcessWordWithMap(mount.From, metaArgsToMap(c.metaArgs))
|
||||
name, _, err := c.shlex.ProcessWord(mount.From, c.metaArgs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user