"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 {
"notes", "--ref", *notesRef, "show", subj,
)
note, _ := cmd.Output()
- note = bytes.TrimSuffix(note, []byte{'\n'})
+ note = bytes.TrimRight(note, "\r\n")
// Remove trailing whitespaces, because git-notes-add will remove
// them anyway, and we have to know exact bytes count
lines := strings.Split(string(body), "\n")
for i, line := range lines {
- lines[i] = strings.TrimRight(line, " ")
+ lines[i] = strings.TrimRight(line, " \r")
}
for lines[len(lines)-1] == "" {
lines = lines[:len(lines)-1]
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"),
)))
"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)