added dump/restore and fixed title stuff

This commit is contained in:
ston1th 2018-10-16 21:26:39 +02:00
commit 8d3187b160
13 changed files with 200627 additions and 189988 deletions

View file

@ -7,7 +7,9 @@ import (
"git.giftfish.de/ston1th/gowiki/pkg/cache"
"git.giftfish.de/ston1th/gowiki/pkg/core"
"git.giftfish.de/ston1th/gowiki/pkg/index"
"git.giftfish.de/ston1th/gowiki/pkg/render"
"git.giftfish.de/ston1th/gowiki/pkg/store"
"io"
)
const (
@ -61,10 +63,30 @@ func New(datadir string) (db *DB, err error) {
return
}
func (db *DB) Close() error {
err := db.store.Close()
func (db *DB) Dump(w io.Writer) error {
return db.store.Dump(w)
}
func (db *DB) Restore(r io.Reader) (err error) {
err = db.store.Restore(r)
if err != nil {
return err
return
}
err = db.store.ForEach(func(k string, _ []byte) error {
if trim, ok := hasTrimPrefix(k, pagePrefix); ok {
p := new(core.Page)
db.store.Get(pagePrefix+trim, p)
db.Index.Add(p.Title, p.StoreTitle, render.Render(p))
}
return nil
})
return
}
func (db *DB) Close() (err error) {
err = db.store.Close()
if err != nil {
return
}
return db.Index.Close()
}