package fetcher import ( "log" "project.hechon.fr/internal/config" "project.hechon.fr/internal/models" "gopkg.in/yaml.v3" "os" "path" "strconv" ) func SaveChapter(cfg config.Cfg, chapter *config.Chapter) (error){ var chapterYaml models.Yaml for i, verse:= range chapter.Verses{ poeticLine := models.PoeticLine{ Who: "", To: "", Of: "", } cola := SplitInPart(verse, cfg.ProperName) for _, colon := range cola{ poeticLine.Cola = append(poeticLine.Cola, models.Colon{ Verse: i+1, Text: colon, }) } chapterYaml.PoeticLines = append(chapterYaml.PoeticLines, poeticLine) } yamlData, err := yaml.Marshal(chapterYaml) if err != nil{ log.Printf("failed unpacking this yaml struct:%v", chapterYaml) return err } fileName := path.Join(cfg.YamlPath, cfg.Book.Name + strconv.Itoa(chapter.Number) + ".yaml") _,err = os.Stat(fileName) if err == nil { err = os.Remove(fileName) if err != nil { log.Printf("can’t remove %v: %v", fileName, err) return err } } err = os.WriteFile(fileName, yamlData, 0600) if err != nil{ log.Printf("can’t write into %v", fileName) return err } return nil }