Add dump command #592

Merged
konrad merged 11 commits from feature/dump into master 2020-06-19 21:29:05 +00:00
1 changed files with 19 additions and 12 deletions
Showing only changes of commit 2094431d49 - Show all commits

View File

@ -18,7 +18,6 @@ package cmd
import (
"archive/zip"
"bytes"
"code.vikunja.io/api/pkg/db"
"code.vikunja.io/api/pkg/files"
"code.vikunja.io/api/pkg/log"
@ -61,8 +60,11 @@ var dumpCmd = &cobra.Command{
log.Info("Dumped config file")
// Version
var buf bytes.Buffer
buf.Write([]byte(version.Version))
err = writeBytesToZip("VERSION", []byte(version.Version), dumpWriter)
if err != nil {
log.Criticalf("Error saving version: %s", err)
}
log.Info("Dumped version")
// Database
data, err := db.Dump()
@ -70,15 +72,7 @@ var dumpCmd = &cobra.Command{
log.Criticalf("Error saving database data: %s", err)
}
for t, d := range data {
header := &zip.FileHeader{
Name: "database/" + t + ".json",
Method: compressionUsed,
}
w, err := dumpWriter.CreateHeader(header)
if err != nil {
log.Criticalf("Error writing database table %s: %s", t, err)
}
_, err = w.Write(d)
err = writeBytesToZip("database/"+t+".json", d, dumpWriter)
if err != nil {
log.Criticalf("Error writing database table %s: %s", t, err)
}
@ -121,3 +115,16 @@ func writeFileToZip(filename string, writer *zip.Writer) error {
_, err = io.Copy(w, fileToZip)
return err
}
func writeBytesToZip(filename string, data []byte, writer *zip.Writer) (err error) {
header := &zip.FileHeader{
Name: filename,
Method: compressionUsed,
}
w, err := writer.CreateHeader(header)
if err != nil {
return err
}
_, err = w.Write(data)
return
}