]> Sergey Matveev's repositories - sgblog.git/blobdiff - cmd/sgblog-comment-add/main.go
Raised copyright years
[sgblog.git] / cmd / sgblog-comment-add / main.go
index 2b977ae7feb14c0c886851f8871ca6e1d982b32c..a81d53d0ee28de9b594438ade0520486a32f62a5 100644 (file)
@@ -1,6 +1,6 @@
 /*
-SGBlog -- Git-backed CGI/inetd blogging/phlogging engine
-Copyright (C) 2020 Sergey Matveev <stargrave@stargrave.org>
+SGBlog -- Git-backed CGI/UCSPI blogging/phlogging/gemlogging engine
+Copyright (C) 2020-2022 Sergey Matveev <stargrave@stargrave.org>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU Affero General Public License as
@@ -15,7 +15,7 @@ You should have received a copy of the GNU Affero General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-// Git-backed CGI/inetd blogging/phlogging engine
+// Git-backed CGI/UCSPI blogging/phlogging/gemlogging engine
 package main
 
 import (
@@ -36,6 +36,7 @@ import (
        "syscall"
        "time"
 
+       "go.cypherpunks.ru/recfile"
        "go.stargrave.org/sgblog"
 )
 
@@ -142,15 +143,24 @@ func main() {
        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{Name: "From", Value: from},
+               recfile.Field{Name: "Date", Value: 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 {