From 6adb60ea2b22f16f3da2aaceddf413464aa45d91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Sterba?= <andre.sterba@stud.h-da.de>
Date: Thu, 17 Jun 2021 11:32:44 +0200
Subject: [PATCH] Do not crash when stores folder does not yet exist

---
 nucleus/store.go | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/nucleus/store.go b/nucleus/store.go
index 11fe79482..70f9ac232 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)
-- 
GitLab