From 3af502dad70bfbaee693996ffa0c491793d03f35 Mon Sep 17 00:00:00 2001 From: keks Date: Mon, 29 Oct 2018 22:44:39 +0100 Subject: [PATCH] better crash recovery --- persist.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/persist.go b/persist.go index 08c5eb7..4f97afc 100644 --- a/persist.go +++ b/persist.go @@ -14,6 +14,16 @@ func Save(f *os.File, v interface{}) error { return errors.Wrapf(err, "error marshaling value of type %T", v) } + _, err = f.Seek(0, 0) + if err != nil { + return errors.Wrap(err, "error seeking to beginning of file") + } + + err = f.Truncate(0) + if err != nil { + return errors.Wrap(err, "error truncating file") + } + _, err = f.Write(data) if err != nil { return errors.Wrap(err, "error copying data into file")