"syscall"
"time"
+ "go.cypherpunks.ru/recfile"
"go.stargrave.org/sgblog"
)
note = bytes.TrimRight(note, "\r\n")
buf := bytes.NewBuffer(note)
- buf.WriteString(fmt.Sprintf(
- "\n\nFrom: %s\nDate: %s\nBody:\n",
- from,
- time.Now().UTC().Format(sgblog.WhenFmt),
- ))
- for _, s := range cleanupBody(string(body)) {
- buf.WriteString("+ ")
- buf.WriteString(s)
- buf.WriteString("\n")
+ recfileW := recfile.NewWriter(buf)
+ if _, err = recfileW.RecordStart(); err != nil {
+ log.Fatal(err)
+ }
+ // We trimmed newline, so have to start record twice
+ if _, err = recfileW.RecordStart(); err != nil {
+ log.Fatal(err)
+ }
+ if _, err = recfileW.WriteFields(
+ recfile.Field{"From", from},
+ recfile.Field{"Date", time.Now().UTC().Format(sgblog.WhenFmt)},
+ ); err != nil {
+ log.Fatal(err)
+ }
+ if _, err = recfileW.WriteFieldMultiline(
+ "Body", append([]string{""}, cleanupBody(string(body))...),
+ ); err != nil {
+ log.Fatal(err)
}
if *dryRun {