Verified Commit 5b5aee0c authored by meskio's avatar meskio 🏔️
Browse files

persistence: add journaling

* Closes: #201
parent b88c746a
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -42,14 +42,19 @@ func (f *JsonPersistence) Save(i interface{}) error {
	dirPath := path.Dir(f.filename)
	os.MkdirAll(dirPath, 0700)

	fh, err := os.Create(f.filename)
	fh, err := os.Create(f.filename + ".tmp")
	if err != nil {
		return err
	}
	defer fh.Close()

	enc := json.NewEncoder(fh)
	return enc.Encode(i)
	err = enc.Encode(i)
	if err != nil {
		return err
	}

	return os.Rename(f.filename+".tmp", f.filename)
}

// New returns a new JsonPersistence instance.
+2 −0
Original line number Diff line number Diff line
@@ -31,9 +31,11 @@ func TestSaveLoad(t *testing.T) {
		os.Remove(p.filename)
	}()

	s1false := &Struct{Foo: "bar", Bar: 1235}
	s1 := &Struct{Foo: "foo", Bar: 1234}
	s2 := &Struct{}

	p.Save(s1false)
	p.Save(s1)
	p.Load(s2)