add pttodo.NewRootFromFile, pttodo.NewTodosFromFile

This commit is contained in:
Bel LaPointe
2023-11-06 12:14:27 -07:00
parent 4e69646e88
commit 760c822323
2 changed files with 51 additions and 0 deletions

View File

@@ -1,11 +1,41 @@
package pttodo
import (
"os"
yaml "gopkg.in/yaml.v2"
)
type Root struct {
Todo []Todo
Scheduled []Todo
Done []Todo
}
func VerifyRootFromFile(p string) error {
_, err := NewRootFromFile(p)
return err
}
func NewRootFromFile(p string) (Root, error) {
f, err := os.Open(p)
if os.IsNotExist(err) {
return Root{}, nil
}
if err != nil {
return Root{}, err
}
defer f.Close()
var result Root
if err := yaml.NewDecoder(f).Decode(&result); err != nil {
return Root{}, err
}
result.AutoMove()
return result, nil
}
func (root Root) Equals(other Root) bool {
for i, slice := range [][2][]Todo{
[2][]Todo{root.Todo, other.Todo},