From 15a797906af2cac7036c98c5e1e75463a9bc84a7 Mon Sep 17 00:00:00 2001 From: Edgar Lee Date: Tue, 29 Oct 2019 15:07:49 -0700 Subject: [PATCH] Implement file action remove for wildcards --- solver/llbsolver/file/backend.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/solver/llbsolver/file/backend.go b/solver/llbsolver/file/backend.go index 07044691f2c6..4c51e515479c 100644 --- a/solver/llbsolver/file/backend.go +++ b/solver/llbsolver/file/backend.go @@ -100,6 +100,27 @@ func mkfile(ctx context.Context, d string, action pb.FileActionMkFile, user *cop } func rm(ctx context.Context, d string, action pb.FileActionRm) error { + if action.AllowWildcard { + src := cleanPath(action.Path) + m, err := copy.ResolveWildcards(d, src, false) + if err != nil { + return err + } + + for _, s := range m { + p, err := fs.RootPath(d, filepath.Join(filepath.Join("/", s))) + if err != nil { + return err + } + + if err := os.RemoveAll(p); err != nil { + return err + } + } + + return nil + } + p, err := fs.RootPath(d, filepath.Join(filepath.Join("/", action.Path))) if err != nil { return err