@@ -404,3 +404,47 @@ func CheckForUpdates(currentVersion string) {
404404 TelemetryCaptureEvent ("CLI update available" , properties )
405405 }
406406}
407+
408+ func GenerateCsv (filename string , headers []string , data [][]string ) {
409+ file , err := os .OpenFile (filename , os .O_APPEND | os .O_CREATE | os .O_WRONLY , 0644 )
410+ if err != nil {
411+ printErrorProps := S.PrintErrorProps {
412+ Error : err ,
413+ Message : "Error opening file" ,
414+ }
415+ PrintError (printErrorProps )
416+ }
417+ defer file .Close ()
418+
419+ // if file is empty, write headers
420+ fileInfo , err := file .Stat ()
421+ if err != nil {
422+ printErrorProps := S.PrintErrorProps {
423+ Error : err ,
424+ Message : "Error getting file info" ,
425+ }
426+ PrintError (printErrorProps )
427+ }
428+ if fileInfo .Size () == 0 {
429+ _ , err := file .WriteString (strings .Join (headers , "," ) + "\n " )
430+ if err != nil {
431+ printErrorProps := S.PrintErrorProps {
432+ Error : err ,
433+ Message : "Error writing headers" ,
434+ }
435+ PrintError (printErrorProps )
436+ }
437+ }
438+
439+ for _ , value := range data {
440+ _ , err := file .WriteString (strings .Join (value , "," ) + "\n " )
441+ if err != nil {
442+ printErrorProps := S.PrintErrorProps {
443+ Error : err ,
444+ Message : "Error writing to file" ,
445+ }
446+ PrintError (printErrorProps )
447+ }
448+
449+ }
450+ }
0 commit comments