From 38ca8c8016dee31b4d99415555ae4031b1116d5a Mon Sep 17 00:00:00 2001 From: Andrei Boar Date: Fri, 16 Dec 2022 14:27:18 +0200 Subject: [PATCH] fix bob clean targets cmd --- bobtask/clean.go | 15 ++++++++++++++- cli/cmd_clean.go | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/bobtask/clean.go b/bobtask/clean.go index 9cc7f15e..43b572bb 100644 --- a/bobtask/clean.go +++ b/bobtask/clean.go @@ -7,6 +7,7 @@ import ( "github.com/benchkram/bob/bobtask/target" "github.com/benchkram/bob/pkg/boblog" + "github.com/logrusorgru/aurora" ) // Clean the targets defined by this task. @@ -32,7 +33,19 @@ func (t *Task) Clean(invalidFiles map[string][]target.Reason, verbose ...bool) e for _, reason := range reasons { if reason == target.ReasonCreatedAfterBuild || reason == target.ReasonForcedByNoCache { p := filepath.Join(t.dir, filename) - os.RemoveAll(p) + if vb { + fmt.Printf(" %s ", p) + } + err := os.RemoveAll(p) + if err != nil { + if vb { + fmt.Printf("%s\n", aurora.Red("failed")) + } + return err + } + if vb { + fmt.Printf("%s\n", aurora.Green("done")) + } } } } diff --git a/cli/cmd_clean.go b/cli/cmd_clean.go index c55bbcc4..416f48dc 100644 --- a/cli/cmd_clean.go +++ b/cli/cmd_clean.go @@ -5,6 +5,7 @@ import ( "os" "github.com/benchkram/bob/bob" + "github.com/benchkram/bob/bobtask/target" "github.com/benchkram/bob/pkg/boblog" "github.com/benchkram/bob/pkg/usererror" "github.com/benchkram/errz" @@ -67,7 +68,19 @@ func runCleanTargets() { } for _, t := range ag.BTasks { - err := t.Clean(nil, true) + if !t.TargetExists() { + continue + } + + taskTarget, err := t.Target() + errz.Fatal(err) + + invalidFiles := make(map[string][]target.Reason) + for _, v := range taskTarget.FilesystemEntriesRawPlain() { + invalidFiles[v] = append(invalidFiles[v], target.ReasonCreatedAfterBuild) + } + + err = t.Clean(invalidFiles, true) if err != nil { boblog.Log.Error(err, "Unable to clean target") }