From bbc9b9476dad43b31dd3020cd404093fe8170044 Mon Sep 17 00:00:00 2001 From: matst80 Date: Sun, 10 Nov 2024 00:14:29 +0100 Subject: [PATCH] only save state if has changes --- main.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index 3ad8e7f..07ab8da 100644 --- a/main.go +++ b/main.go @@ -53,16 +53,23 @@ type App struct { } func (a *App) Save() error { + hasChanges := false for id, grain := range a.pool.GetGrains() { if grain == nil { continue } - log.Printf("Saving grain %s\n", id) - err := a.storage.Store(id, grain) - if err != nil { - log.Printf("Error saving grain %s: %v\n", id, err) + if grain.GetLastChange() > a.storage.LastSaves[id] { + hasChanges = true + log.Printf("Saving grain %s\n", id) + err := a.storage.Store(id, grain) + if err != nil { + log.Printf("Error saving grain %s: %v\n", id, err) + } } } + if !hasChanges { + return nil + } return a.storage.saveState() }