@@ -468,3 +468,47 @@ func Contains(s []string, e string) bool {
468468 }
469469 return false
470470}
471+
472+ func GenerateCsv (filename string , headers []string , data [][]string ) {
473+ file , err := os .OpenFile (filename , os .O_APPEND | os .O_CREATE | os .O_WRONLY , 0644 )
474+ if err != nil {
475+ printErrorProps := S.PrintErrorProps {
476+ Error : err ,
477+ Message : "Error opening file" ,
478+ }
479+ PrintError (printErrorProps )
480+ }
481+ defer file .Close ()
482+
483+ // if file is empty, write headers
484+ fileInfo , err := file .Stat ()
485+ if err != nil {
486+ printErrorProps := S.PrintErrorProps {
487+ Error : err ,
488+ Message : "Error getting file info" ,
489+ }
490+ PrintError (printErrorProps )
491+ }
492+ if fileInfo .Size () == 0 {
493+ _ , err := file .WriteString (strings .Join (headers , "," ) + "\n " )
494+ if err != nil {
495+ printErrorProps := S.PrintErrorProps {
496+ Error : err ,
497+ Message : "Error writing headers" ,
498+ }
499+ PrintError (printErrorProps )
500+ }
501+ }
502+
503+ for _ , value := range data {
504+ _ , err := file .WriteString (strings .Join (value , "," ) + "\n " )
505+ if err != nil {
506+ printErrorProps := S.PrintErrorProps {
507+ Error : err ,
508+ Message : "Error writing to file" ,
509+ }
510+ PrintError (printErrorProps )
511+ }
512+
513+ }
514+ }
0 commit comments