copy: support for include/exclude

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi
2022-03-31 18:13:49 -07:00
parent acc593f388
commit 57770d347f
3 changed files with 30 additions and 7 deletions

View File

@@ -49,18 +49,31 @@ func (t *copyTask) Run(ctx context.Context, pctx *plancontext.Context, s *solver
return nil, err
}
var filters struct {
Include []string
Exclude []string
}
if err := v.Decode(&filters); err != nil {
return nil, err
}
// FIXME: allow more configurable llb options
// For now we define the following convenience presets.
opts := &llb.CopyInfo{
CopyDirContentsOnly: true,
CreateDestPath: true,
AllowWildcard: true,
IncludePatterns: filters.Include,
ExcludePatterns: filters.Exclude,
}
outputState := inputState.File(
llb.Copy(
contentsState,
sourcePath,
destPath,
// FIXME: allow more configurable llb options
// For now we define the following convenience presets:
&llb.CopyInfo{
CopyDirContentsOnly: true,
CreateDestPath: true,
AllowWildcard: true,
},
opts,
),
withCustomName(v, "Copy %s %s", sourcePath, destPath),
)