|
|
|
@ -3,6 +3,7 @@ package main
|
|
|
|
|
import (
|
|
|
|
|
"bufio"
|
|
|
|
|
"bytes"
|
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/sergi/go-diff/diffmatchpatch"
|
|
|
|
|
"html"
|
|
|
|
|
"html/template"
|
|
|
|
@ -37,35 +38,32 @@ func (fp *FilePages) Get(p string) Page {
|
|
|
|
|
return Page{Content: string(body)}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (fp *FilePages) Save(p string, page Page, summary, author string) {
|
|
|
|
|
func (fp *FilePages) Save(p string, page Page, summary, author string) error {
|
|
|
|
|
f, err := os.Create(filepath.Join(fp.dirname, strings.Replace(p, " ", "_", -1)))
|
|
|
|
|
if err != nil {
|
|
|
|
|
return
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
defer f.Close()
|
|
|
|
|
f.WriteString(strings.Replace(page.Content, "\r\n", "\n", -1))
|
|
|
|
|
|
|
|
|
|
saveWithGit(fp, p, summary, author)
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
|
return saveWithGit(fp, p, summary, author)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func saveWithGit(fp *FilePages, p string, summary, author string) {
|
|
|
|
|
func saveWithGit(fp *FilePages, p string, summary, author string) error {
|
|
|
|
|
cmd := exec.Command("git", "add", ".")
|
|
|
|
|
cmd.Dir = fp.dirname
|
|
|
|
|
err := cmd.Run()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Println(err)
|
|
|
|
|
return
|
|
|
|
|
return fmt.Errorf("while adding page %s: %s", p, err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
cmd = exec.Command("git", "commit", "-m", "Changes to "+p+" by "+author+"\n\n"+summary)
|
|
|
|
|
cmd.Dir = fp.dirname
|
|
|
|
|
err = cmd.Run()
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Println(err)
|
|
|
|
|
return
|
|
|
|
|
return fmt.Errorf("while commiting page %s: %s", p, err)
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (fp *FilePages) Exist(p string) bool {
|
|
|
|
|