diff --git a/cmd/convert.go b/cmd/convert.go index b36c86a..ea480d7 100644 --- a/cmd/convert.go +++ b/cmd/convert.go @@ -10,6 +10,7 @@ import ( "os" "path/filepath" "regexp" + "slices" "github.com/spf13/cobra" "github.com/yookoala/realpath" @@ -119,6 +120,7 @@ var loadEnvironmentValues string = "" var reposFromHelmChart []helmfileRepository var environmentValues map[string]interface{} +var filesWrittenTo []string // convertCmd represents the convert command var convertCmd = &cobra.Command{ @@ -301,7 +303,14 @@ func outputString(data string, filename string) { if string(outputDir) == "-" { fmt.Println(data) } else { - f, err := os.OpenFile(outputDir+string(os.PathSeparator)+filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + var mode int + if slices.Contains(filesWrittenTo,filename) { + mode = os.O_APPEND|os.O_CREATE|os.O_WRONLY + } else { + filesWrittenTo = append(filesWrittenTo, filename) + mode = os.O_TRUNC|os.O_CREATE|os.O_WRONLY + } + f, err := os.OpenFile(outputDir+string(os.PathSeparator)+filename, mode, 0644) if err != nil { panic(err) }