]> Sergey Matveev's repositories - sgblog.git/commitdiff
Configurable comments commits author v0.3.0
authorSergey Matveev <stargrave@stargrave.org>
Fri, 17 Jan 2020 18:20:32 +0000 (21:20 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 17 Jan 2020 18:24:22 +0000 (21:24 +0300)
cmd/sgblog-comment-add/main.go
cmd/sgblog/main.go
common.go [new file with mode: 0644]

index 8bae15fdc1dda25f9a92c5f35b1505ebb1eb5d6f..8b46c555929ca3a17ddf06e19486b30d5e957e90 100644 (file)
@@ -35,16 +35,20 @@ import (
        "time"
 
        "go.cypherpunks.ru/netstring/v2"
+       "go.stargrave.org/sgblog"
 )
 
-const WhenFmt = "2006-01-02 15:04:05Z07:00"
-
 func main() {
        gitCmd := flag.String("git-cmd", "/usr/local/bin/git", "Path to git executable")
        gitDir := flag.String("git-dir", "", "Path to .git repository")
        notesRef := flag.String("ref", "comments", "notes reference name")
        umask := flag.String("umask", "027", "umask value")
        dryRun := flag.Bool("dryrun", false, "Show comment, do not add")
+       committerEmail := flag.String(
+               "committer-email",
+               "comment@blog.example.com",
+               "Git committer's email",
+       )
        flag.Parse()
        uid := syscall.Geteuid()
        if err := syscall.Setuid(uid); err != nil {
@@ -111,7 +115,7 @@ func main() {
        w.WriteChunk([]byte(fmt.Sprintf(
                "From: %s\nDate: %s\n\n%s",
                from,
-               time.Now().UTC().Format(WhenFmt),
+               time.Now().UTC().Format(sgblog.WhenFmt),
                strings.Join(lines, "\n"),
        )))
 
@@ -125,6 +129,13 @@ func main() {
                "notes", "--ref", *notesRef, "add",
                "-F", "-", "-f", subj,
        )
+       cmd.Env = append(
+               cmd.Env,
+               "GIT_AUTHOR_NAME=SGBlog "+sgblog.Version,
+               "GIT_AUTHOR_EMAIL="+*committerEmail,
+               "GIT_COMMITTER_NAME=SGBlog "+sgblog.Version,
+               "GIT_COMMITTER_EMAIL="+*committerEmail,
+       )
        cmd.Stdin = buf
        if err = cmd.Run(); err != nil {
                log.Fatal(err)
index 5ee199e331a0720b2a92fb9a79b896fd878c0d0e..2173580bc2ebdc2bad162d61614c5edd1b5c5c75 100644 (file)
@@ -39,6 +39,7 @@ import (
 
        "github.com/hjson/hjson-go"
        "go.cypherpunks.ru/netstring/v2"
+       "go.stargrave.org/sgblog"
        "golang.org/x/crypto/blake2b"
        "golang.org/x/tools/blog/atom"
        "gopkg.in/src-d/go-git.v4"
@@ -48,12 +49,10 @@ import (
 
 const (
        PageEntries = 50
-       WhenFmt     = "2006-01-02 15:04:05Z07:00"
        AtomFeed    = "feed.atom"
 )
 
 var (
-       Version      = "0.2.0"
        sha1DigestRe = regexp.MustCompilePOSIX("([0-9a-f]{40,40})")
        defaultLinks = []string{}
        repo         *git.Repository
@@ -204,7 +203,7 @@ func startHTML(title string, additional []string) string {
 </head>
 <body>
 `,
-               Version, title,
+               sgblog.Version, title,
                strings.Join(append(defaultLinks, additional...), "\n   "),
        )
 }
@@ -259,6 +258,7 @@ func main() {
                panic(err)
        }
        etagHash.Write([]byte("SGBLOG"))
+       etagHash.Write([]byte(sgblog.Version))
        etagHash.Write([]byte(cfg.GitPath))
        etagHash.Write([]byte(cfg.Branch))
        etagHash.Write([]byte(cfg.Title))
@@ -409,7 +409,7 @@ func main() {
                                        "<td>%s</td>"+
                                        "<td>%d</td><td>%s</td>"+
                                        "<td>%s</td></tr>\n",
-                               commentN, entry.commit.Author.When.Format(WhenFmt),
+                               commentN, entry.commit.Author.When.Format(sgblog.WhenFmt),
                                makeA(cfg.URLPrefix+"/"+entry.commit.Hash.String(), lines[0]),
                                len(lines)-2,
                                commentsValue,
@@ -539,7 +539,7 @@ func main() {
                checkETag(etagHash)
                lines := msgSplit(commit.Message)
                title := lines[0]
-               when := commit.Author.When.Format(WhenFmt)
+               when := commit.Author.When.Format(sgblog.WhenFmt)
                os.Stdout.Write([]byte(startHeader(etagHash, gzipWriter != nil)))
                links := []string{}
                var parent string
diff --git a/common.go b/common.go
new file mode 100644 (file)
index 0000000..183ac3d
--- /dev/null
+++ b/common.go
@@ -0,0 +1,7 @@
+// SGBlog -- Git-based CGI blogging engine
+package sgblog
+
+const (
+       WhenFmt = "2006-01-02 15:04:05Z07:00"
+       Version = "0.3.0"
+)