From 7860ac988a6d3eb0ad5b91b1bfbedc32d49daa7b Mon Sep 17 00:00:00 2001 From: Quan TRAN Date: Wed, 14 Dec 2022 00:33:07 +0100 Subject: [PATCH] Remove temporary dir as well (#563) Fixes #540 Signed-off-by: Quan TRAN Signed-off-by: yxxhero Co-authored-by: yxxhero --- pkg/state/state.go | 23 ++++++++++++++++++- .../testdata/snapshot/pr_560/output.yaml | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/pkg/state/state.go b/pkg/state/state.go index d5943997..202b54c2 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -2763,13 +2763,34 @@ func (st *HelmState) ExpandedHelmfiles() ([]SubHelmfileSpec, error) { } func (st *HelmState) removeFiles(files []string) { + dirsToClean := map[string]int{} for _, f := range files { + dirsToClean[filepath.Dir(f)] = 1 if err := st.fs.DeleteFile(f); err != nil { - st.logger.Warnf("Removing %s: %v", err) + st.logger.Warnf("Removing %s: %v", f, err) } else { st.logger.Debugf("Removed %s", f) } } + for d := range dirsToClean { + // check if the directory is empty + des, err := st.fs.ReadDir(d) + if err != nil { + st.logger.Warnf("Reading dir %s: %v", d, err) + continue + } + + if len(des) > 0 { + st.logger.Debugf("Not removing %s because it's not empty", d) + continue + } + + if err := st.fs.DeleteFile(d); err != nil { + st.logger.Warnf("Removing %s: %v", d, err) + } else { + st.logger.Debugf("Removed %s", d) + } + } } func (st *HelmState) generateTemporaryReleaseValuesFiles(release *ReleaseSpec, values []interface{}, missingFileHandler *string) ([]string, error) { diff --git a/test/e2e/template/helmfile/testdata/snapshot/pr_560/output.yaml b/test/e2e/template/helmfile/testdata/snapshot/pr_560/output.yaml index 0f9a5ff6..ed4c66ef 100644 --- a/test/e2e/template/helmfile/testdata/snapshot/pr_560/output.yaml +++ b/test/e2e/template/helmfile/testdata/snapshot/pr_560/output.yaml @@ -109,4 +109,5 @@ data: foo: FOO Removed /tmp/helmfile/foo-values-649697bc75 +Removed /tmp/helmfile changing working directory back to "/home/runner/work/helmfile/helmfile/test/e2e/template/helmfile"