From 6bd3a0f27e473dd7b60b2a1fe831e40c9fa0b134 Mon Sep 17 00:00:00 2001 From: brownzebra Date: Fri, 13 Dec 2024 11:39:28 +0200 Subject: [PATCH 1/3] cleanupDir in case of re-running smelt --- cmd/smelter/smelt.go | 4 ++++ cmd/utils/utils.go | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/cmd/smelter/smelt.go b/cmd/smelter/smelt.go index 5c806914..bccaeafd 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..48978bd0 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 +} From d5270ada7667cb355d5af59bf948595824b9ce10 Mon Sep 17 00:00:00 2001 From: brownzebra Date: Fri, 13 Dec 2024 11:39:28 +0200 Subject: [PATCH 2/3] cleanup working directory before smelting --- cmd/smelter/smelt.go | 4 ++++ cmd/utils/utils.go | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) 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 +} From c4cb6be1612723529b9b7141dc668e34958bd8b3 Mon Sep 17 00:00:00 2001 From: brownzebra Date: Fri, 13 Dec 2024 13:06:55 +0200 Subject: [PATCH 3/3] removing .gitkeep as working/pre will be recreated --- working/pre/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 working/pre/.gitkeep diff --git a/working/pre/.gitkeep b/working/pre/.gitkeep deleted file mode 100644 index e69de29b..00000000