// Copyright (C) 2018 Marius Schellenberger package store /*import ( "encoding/json" "fmt" "io" "os" ) type Dumper interface { Dump(io.Writer) error } type Restorer interface { Restore(io.Reader) error } type DBDump struct { Pages []DumpPage `json:"pages"` Snippets []Snippet `json:"snippets"` Users []User `json:"users"` } type DumpPage struct { Title string `json:"title"` LinkTitle string `json:"link_title"` MD string `json:"md"` Created string `json:"created"` Updated string `json:"updated"` Public bool `json:"public"` } func verboseLog(prefix, title string, v bool) { if v { fmt.Fprintln(os.Stderr, prefix, title) } } func Dump(path string, v bool) (err error) { bs, err := NewBoltStore() if err != nil { return } var dump DBDump //TODO bs.GetAllPages var pages []*core.Page for _, p := range pages { if err != nil { return } verboseLog("dump:", p.Title, v) dump.Pages = append(dump.Pages, DumpPage{ Title: p.Title, LinkTitle: p.LinkTitle, MD: p.MD, Created: p.Created, Updated: p.Updated, Public: p.Public, }) } //TODO snippets //verboseLog("dump:", "snippets", v) verboseLog("dump:", "users", v) dump.Users, err = bs.DumpUsers() if err != nil { return } return json.NewEncoder(os.Stdout).Encode(dump) } func Restore(path string, v bool) (err error) { i, err := NewIndex(path) if err != nil { return } defer i.Close() bs, err := NewBoltStore() if err != nil { return } var dump DBDump err = json.NewDecoder(os.Stdin).Decode(&dump) if err != nil { return } for _, art := range dump.Articles { verboseLog("restore:", art.Title, v) err = i.Restore(&art) if err != nil { return } } //TODO snippets //verboseLog("restore:", "snippets", v) verboseLog("restore:", "users", v) err = bs.RestoreUsers(dump.Users) return }*/