diff --git a/cmd/smelter/smelt.go b/cmd/smelter/smelt.go index 5c806914..8908f8df 100644 --- a/cmd/smelter/smelt.go +++ b/cmd/smelter/smelt.go @@ -91,6 +91,10 @@ func Smelt(configs []utils.Config) { for _, config := range configs { configMap[config.Name] = config } + // cleanup any previous smelts + if err := utils.CleanupDir("working"); err != nil { + log.Fatal(err) + } // Ensure the working/pre directory exists preDir := "working/pre" if _, err := os.Stat(preDir); os.IsNotExist(err) { diff --git a/cmd/utils/utils.go b/cmd/utils/utils.go index fac467db..de698620 100644 --- a/cmd/utils/utils.go +++ b/cmd/utils/utils.go @@ -394,3 +394,27 @@ func IsClusterScoped(resourceName, apiVersion string) bool { } return false } + +func CleanupDir(dir string) error { + if _, err := os.Stat(dir); os.IsNotExist(err) { + return nil + } + err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if !info.IsDir() && info.Name() != ".gitkeep" { + err := os.Remove(path) + if err != nil { + log.Errorf("Error deleting file %s: %v", path, err) + } else { + log.Debugf("Deleted file %s", path) + } + } + return nil + }) + if err != nil { + return fmt.Errorf("error cleaning %s directory: %v", dir, err) + } + return nil +} diff --git a/working/pre/.gitkeep b/working/pre/.gitkeep deleted file mode 100644 index e69de29b..00000000