From c1ace352e8ba09ec3c00317e72de6b871a8964ec Mon Sep 17 00:00:00 2001 From: siddharth Date: Sun, 28 Nov 2021 18:32:18 -0500 Subject: db: add FernDB.Write Writes database to disk. --- db/db.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'db/db.go') diff --git a/db/db.go b/db/db.go index bbe5b36..4ee511b 100644 --- a/db/db.go +++ b/db/db.go @@ -96,3 +96,28 @@ func (fdb *FernDB) Add(feed, entry string) { fdb.downloaded[feed] = append(fdb.downloaded[feed], entry) fdb.mutex.Unlock() } + +func (fdb *FernDB) Write() error { + if len(dbPath) == 0 { + return fmt.Errorf("FernDB path not set") + } + + f, err := os.OpenFile(dbPath, os.O_WRONLY|os.O_CREATE, 0644) + if err != nil { + return err + } + defer f.Close() + + // Marshal database into json. + bs, err := json.Marshal(fdb.downloaded) + if err != nil { + return err + } + + // Write to disk. + _, err = f.Write(bs) + if err != nil { + return err + } + return nil +} -- cgit v1.2.3