package logs import ( "bufio" "fmt" "os" "path/filepath" stypes "git.cryptic.systems/fh-trier/go-flucky-server/pkg/types" "git.cryptic.systems/fh-trier/go-flucky/pkg/types" ) // Temperature write a given array of temperatures to a logfile func Temperature(temperatures []*stypes.Temperature, config *types.Config) error { logPath := filepath.Dir(config.TemperatureLogfile) // create log dir if not exist if _, err := os.Stat(logPath); os.IsNotExist(err) { err := os.MkdirAll(logPath, os.ModePerm) if err != nil { return fmt.Errorf("Can not create directory: %v", err) } } f, err := os.OpenFile(config.TemperatureLogfile, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) if err != nil { return err } defer f.Close() w := bufio.NewWriter(f) for _, temperature := range temperatures { fmt.Fprintf(w, "%v\t%v\t%v\t%v\n", temperature.TemperatureID, temperature.TemperatureValue, temperature.TemperatureDate, temperature.SensorID) } err = w.Flush() if err != nil { return fmt.Errorf("Can not flush writer: %v", err) } return nil }