From bbdd38fba701e2fbf32df050882297ccd6eec1b9 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Thu, 24 Mar 2022 09:18:19 -0600 Subject: [PATCH] always write ts, when a todo with schedule deleted, conditionally go back to schedule for loopers --- cmd/pttodo-cli/cli.go | 10 +++++++++- cmd/pttodo-cli/testdata/test.yaml | 29 +++++++++++++++++++++++++++-- pttodo/todo.go | 2 +- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/cmd/pttodo-cli/cli.go b/cmd/pttodo-cli/cli.go index e006685..70fc527 100644 --- a/cmd/pttodo-cli/cli.go +++ b/cmd/pttodo-cli/cli.go @@ -14,6 +14,7 @@ import ( "sort" "strings" "syscall" + "time" "gopkg.in/yaml.v2" ) @@ -172,14 +173,21 @@ func edit(dry bool, filepaths []string) error { for i := range newTodos { newTodoIDs[newTodos[i].ID()] = struct{}{} } + for i := range original.Todo { if _, ok := newTodoIDs[original.Todo[i].ID()]; !ok { - original.Done = append(original.Done, original.Todo[i]) + original.Todo[i].TS = pttodo.TS(time.Now().Unix()) + if string(original.Todo[i].Schedule) != "" && !original.Todo[i].Triggered() { + original.Scheduled = append(original.Scheduled, original.Todo[i]) + } else { + original.Done = append(original.Done, original.Todo[i]) + } } } original.Todo = newTodos original.AutoMove() + c, err := yaml.Marshal(original) if err != nil { return err diff --git a/cmd/pttodo-cli/testdata/test.yaml b/cmd/pttodo-cli/testdata/test.yaml index 9770954..f83af4c 100755 --- a/cmd/pttodo-cli/testdata/test.yaml +++ b/cmd/pttodo-cli/testdata/test.yaml @@ -1,13 +1,20 @@ todo: -- b +- todo: b + ts: Thu Mar 24 09:03:24 MDT 2022 scheduled: +- todo: due + schedule: "2022-05-01" + ts: Thu Mar 24 09:16:21 MDT 2022 +- todo: loop + schedule: 10s + ts: Thu Mar 24 09:17:11 MDT 2022 +done: - todo: abc schedule: "2022-05-01" ts: Wed Mar 23 08:03:45 MDT 2022 - todo: def schedule: "2022-05-01" ts: Wed Mar 23 08:04:05 MDT 2022 -done: - todo: other ts: Wed Mar 23 09:44:57 MDT 2022 - todo: b @@ -18,3 +25,21 @@ done: ts: Wed Mar 23 09:45:24 MDT 2022 - todo: a ts: Wed Mar 23 09:45:31 MDT 2022 +- todo: looper + schedule: 15s + ts: Thu Mar 24 09:01:41 MDT 2022 +- todo: looper + schedule: 15s + ts: Thu Mar 24 09:04:51 MDT 2022 +- todo: loop + schedule: 10s + ts: Thu Mar 24 09:06:59 MDT 2022 +- todo: due + schedule: "2022-02-01" + ts: Thu Mar 24 09:15:42 MDT 2022 +- todo: due + schedule: "2022-02-01" + ts: Thu Mar 24 09:16:53 MDT 2022 +- todo: due + schedule: "2022-03-01" + ts: Thu Mar 24 09:17:07 MDT 2022 diff --git a/pttodo/todo.go b/pttodo/todo.go index 1fe9ad6..ed64a8f 100644 --- a/pttodo/todo.go +++ b/pttodo/todo.go @@ -36,7 +36,7 @@ func (todo Todo) Triggered() bool { } func (todo Todo) MarshalYAML() (interface{}, error) { - if !todo.writeTS { + if false && !todo.writeTS { todo.TS = 0 } else { todo.TS = TS(todo.TS.time().Unix())