aboutsummaryrefslogtreecommitdiffstats
path: root/todolist/file_store.go
diff options
context:
space:
mode:
Diffstat (limited to 'todolist/file_store.go')
-rw-r--r--todolist/file_store.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/todolist/file_store.go b/todolist/file_store.go
new file mode 100644
index 0000000..3f71ba2
--- /dev/null
+++ b/todolist/file_store.go
@@ -0,0 +1,34 @@
+package todolist
+
+import (
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "os/user"
+)
+
+type FileStore struct {
+ FileLocation string
+ Data []Todo
+}
+
+func NewFileStore() *FileStore {
+ usr, _ := user.Current()
+ return &FileStore{FileLocation: usr.HomeDir + "/.todos.json"}
+}
+
+func (f *FileStore) Load() {
+ data, err := ioutil.ReadFile(f.FileLocation)
+ if err != nil {
+ fmt.Println("Error reading file", err)
+ os.Exit(1)
+ }
+
+ jerr := json.Unmarshal(data, &f.Data)
+ if jerr != nil {
+ fmt.Println("Error reading json data", jerr)
+ os.Exit(1)
+ }
+
+}