]> Sergey Matveev's repositories - sgblog.git/commitdiff
Use an updated recfile library writer capability
authorSergey Matveev <stargrave@stargrave.org>
Wed, 28 Oct 2020 10:00:19 +0000 (13:00 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 28 Oct 2020 10:11:48 +0000 (13:11 +0300)
cmd/sgblog-comment-add/main.go
go.mod
go.sum

index 2b977ae7feb14c0c886851f8871ca6e1d982b32c..ec8910eef9362d1eb89eb5d66583ece99a7ea9bc 100644 (file)
@@ -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{"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 {
diff --git a/go.mod b/go.mod
index e9cd706946f750abe3c8f989355f3aea5842c9a1..4333e456a07d7d0f7665d379ac8d51d021a363ac 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ require (
        github.com/go-git/go-git/v5 v5.1.0
        github.com/hjson/hjson-go v3.0.1+incompatible
        github.com/imdario/mergo v0.3.11 // indirect
-       go.cypherpunks.ru/recfile v0.1.0
+       go.cypherpunks.ru/recfile v0.2.0
        golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
        golang.org/x/net v0.0.0-20200925080053-05aa5d4ee321 // indirect
        golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d // indirect
diff --git a/go.sum b/go.sum
index 757f0c602b88fcdbef8b389ea5035c20a5d727be..a39ed4f650b37d46a1a76ae153ebbef0e381ba7e 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -57,8 +57,8 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=
 github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
-go.cypherpunks.ru/recfile v0.1.0 h1:JNtRwUpA6zXl/mJTBY3zK0ynmh3Dbp4dZb2zN+HUmnk=
-go.cypherpunks.ru/recfile v0.1.0/go.mod h1:p1ZUMeyQQbQg+ICtKH3+Zt59QLI0tCZYZj/75Vp1buk=
+go.cypherpunks.ru/recfile v0.2.0 h1:HXX2fUeJgnhLEJGshPcjqPGL+YIyqrD2kHI2qL8epwY=
+go.cypherpunks.ru/recfile v0.2.0/go.mod h1:p1ZUMeyQQbQg+ICtKH3+Zt59QLI0tCZYZj/75Vp1buk=
 golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=