Files
MQTTLogger/internal/csv/init.go
2025-09-29 13:34:34 +03:30

34 lines
787 B
Go

package csv
import (
"encoding/csv"
"io"
"os"
"go.uber.org/zap"
)
func InitializeHeader(logger *zap.Logger) {
csvFile, err := os.OpenFile("mqtt-logs.csv", os.O_CREATE|os.O_RDWR|os.O_APPEND, 0644)
if err != nil {
logger.Fatal("error opening csv file", zap.Error(err))
}
defer csvFile.Close()
r := csv.NewReader(csvFile)
w := csv.NewWriter(csvFile)
record, err := r.Read()
if err == io.EOF {
w.Write([]string{"Date (UTC)", "Topic", "Message"})
w.Flush()
} else if err != nil {
logger.Fatal("error initializing csv file", zap.Error(err))
} else if record[0] == "Date (UTC)" && record[1] == "Topic" && record[2] == "Message" {
return
} else {
logger.Fatal("First row of csv file is not as expected. Please make sure the file is in the correct format.")
}
}