create a backup after learning

master
Carlo Strub 6 years ago
parent ecbe904459
commit eaca7173f2
No known key found for this signature in database
GPG Key ID: 34EF3FF33C29811A

@ -1,6 +1,7 @@
package main
import (
"bufio"
"fmt"
"os"
"strings"
@ -159,6 +160,7 @@ COPYRIGHT:
}
learn(maildirs, dbs)
backup(maildirs, dbs)
time.Sleep(duration)
}
}()
@ -250,3 +252,35 @@ func learn(maildirs []sisyphus.Maildir, dbs map[sisyphus.Maildir]*bolt.DB) {
return
}
func backup(maildirs []sisyphus.Maildir, dbs map[sisyphus.Maildir]*bolt.DB) {
for _, d := range maildirs {
db := dbs[d]
backup, err := os.Create(string(d) + "/sisyphus.db.backup")
if err != nil {
log.WithFields(log.Fields{
"err": err,
}).Error("Backup creation")
}
defer backup.Close()
w := bufio.NewWriter(backup)
err := db.View(func(tx *bolt.Tx) error {
_, err := tx.WriteTo(w)
return err
})
if err != nil {
log.WithFields(log.Fields{
"err": err,
}).Error("Backup creation")
}
w.Flush()
}
log.Info("All databases backed up successfully.")
return
}

Loading…
Cancel
Save