From a6e8d64284e1fd89855e8deee43ccb3e95e3696d Mon Sep 17 00:00:00 2001 From: Chris Cummer Date: Sun, 22 Apr 2018 21:17:27 -0700 Subject: [PATCH] Todo list persists to file --- todo/widget.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/todo/widget.go b/todo/widget.go index d0009d50..3ff54a49 100644 --- a/todo/widget.go +++ b/todo/widget.go @@ -3,6 +3,7 @@ package todo import ( "fmt" "time" + "io/ioutil" "github.com/gdamore/tcell" "github.com/olebedev/config" @@ -64,6 +65,7 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey { case " ": // Check/uncheck selected item widget.list.Toggle() + widget.persist() widget.display() return nil case "e": @@ -99,3 +101,17 @@ func (widget *Widget) keyboardIntercept(event *tcell.EventKey) *tcell.EventKey { return event } } + +// persist writes the todo list to Yaml file +func (widget *Widget) persist() { + confDir, _ := wtf.ConfigDir() + filePath := fmt.Sprintf("%s/%s", confDir, widget.FilePath) + + fileData, _ := yaml.Marshal(&widget.list) + + err := ioutil.WriteFile(filePath, fileData, 0644) + + if err != nil { + panic(err) + } +}