1
0
mirror of https://github.com/schollz/cowyo.git synced 2023-08-10 21:13:00 +03:00

Merge pull request #29 from schollz/dump

Added dump flag to dump all the pages to markdown files
This commit is contained in:
Zack 2016-03-11 14:13:52 -05:00
commit 3513926cf8
2 changed files with 31 additions and 0 deletions

11
main.go
View File

@ -45,6 +45,7 @@ func main() {
flag.StringVar(&RuntimeArgs.ServerCRT, "crt", "", "location of ssl crt")
flag.StringVar(&RuntimeArgs.ServerKey, "key", "", "location of ssl key")
flag.StringVar(&RuntimeArgs.WikiName, "w", "AwwKoala", "custom name for wiki")
dumpDataset := flag.Bool("dump", false, "flag to dump all data to 'dump' directory")
flag.CommandLine.Usage = func() {
fmt.Println(`AwwKoala (version ` + VersionNum + `): A Websocket Wiki and Kind Of A List Application
run this to start the server and then visit localhost at the port you specify
@ -57,11 +58,21 @@ Options:`)
flag.CommandLine.PrintDefaults()
}
flag.Parse()
if *dumpDataset {
fmt.Println("Dumping data to 'dump' folder...")
Open(RuntimeArgs.DatabaseLocation)
dumpEverything()
Close()
os.Exit(1)
}
RuntimeArgs.ExternalIP = flag.Arg(0)
if RuntimeArgs.ExternalIP == "" {
RuntimeArgs.ExternalIP = GetLocalIP() + RuntimeArgs.Port
}
RuntimeArgs.SourcePath = cwd
Open(RuntimeArgs.DatabaseLocation)
defer Close()

View File

@ -5,6 +5,7 @@ import (
"html/template"
"io/ioutil"
"net/http"
"os"
"path"
"regexp"
"strconv"
@ -328,3 +329,22 @@ func listEverything() string {
})
return everything
}
func dumpEverything() {
err := os.MkdirAll("dump", 0777)
if err != nil {
fmt.Println("Already exists")
}
db.View(func(tx *bolt.Tx) error {
// Assume bucket exists and has keys
b := tx.Bucket([]byte("datas"))
c := b.Cursor()
for k, _ := c.First(); k != nil; k, _ = c.Next() {
var p WikiData
p.load(string(k))
fmt.Println(string(k), len(p.CurrentText))
ioutil.WriteFile(path.Join("dump", string(k)+".md"), []byte(p.CurrentText), 0644)
}
return nil
})
}