diff --git a/nucleus/store.go b/nucleus/store.go index 11fe794821de42781b90e4bb6643636d29197dbc..70f9ac2326f14ad35aee6dd87b8b3feaa8a2bb03 100644 --- a/nucleus/store.go +++ b/nucleus/store.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "io/ioutil" + "os" "reflect" "sync" @@ -446,7 +447,20 @@ func (s DeviceStore) Delete(id uuid.UUID) error { return nil } +func ensureFilesystemStorePathExists() error { + + pathToStore := "stores/" + + if _, err := os.Stat(pathToStore); os.IsNotExist(err) { + os.MkdirAll(pathToStore, 0700) + } + + return nil +} + func (s DeviceStore) LoadFromFilesystem() error { + ensureFilesystemStorePathExists() + fileName := fmt.Sprintf("stores/%s.json", s.store.name) dat, err := ioutil.ReadFile(fileName)