diff --git a/.gitignore b/.gitignore index c382ded..c7e91dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ **/*.sw* todo-server-yaml +cmd/cmd +cmd/cli diff --git a/cmd/cli.go b/cmd/cli.go new file mode 100644 index 0000000..d8743bd --- /dev/null +++ b/cmd/cli.go @@ -0,0 +1,52 @@ +package main + +import ( + "bytes" + "flag" + "io" + "io/ioutil" + "local/pt-todo-server/pttodo" + "log" + "os" + + "gopkg.in/yaml.v2" +) + +func main() { + if err := _main(); err != nil { + panic(err) + } +} + +func _main() error { + filepath := flag.String("f", "-", "path to yaml file") + flag.Parse() + + var reader io.Reader + if *filepath == "-" { + reader = os.Stdin + } else { + b, err := ioutil.ReadFile(*filepath) + if err != nil { + return err + } + reader = bytes.NewReader(b) + } + + b, err := ioutil.ReadAll(reader) + if err != nil { + return err + } + + var root pttodo.Root + if err := yaml.Unmarshal(b, &root); err != nil { + return err + } + + b2, err := yaml.Marshal(root) + if err != nil { + return err + } + log.Printf("%s", b2) + return nil +} diff --git a/pttodo/todo.go b/pttodo/todo.go index f400f88..9eb3f57 100644 --- a/pttodo/todo.go +++ b/pttodo/todo.go @@ -2,7 +2,7 @@ package pttodo type Todo struct { Todo string - Detail string - TS TS - Schedule Schedule + Detail string `yaml:",omitempty"` + TS TS `yaml:",omitempty"` + Schedule Schedule `yaml:",omitempty"` } diff --git a/sample.yaml b/sample.yaml index 07abf27..fa04a8b 100644 --- a/sample.yaml +++ b/sample.yaml @@ -6,12 +6,12 @@ todo: ts: 111 - todo: task that appeared when 'when' - loop: "* * * * *" # or ([0-9]*[a-z])+ for durations, or int for scheduled/deferred + schedule: "* * * * *" # or ([0-9]*[a-z])+ for durations, or int for scheduled/deferred ts: 222 scheduled: - todo: task that will appear when 'when' - loop: "* * * * *" # or ([0-9]*[a-z])+ for durations, or int for scheduled/deferred + schedule: "* * * * *" # or ([0-9]*[a-z])+ for durations, or int for scheduled/deferred ts: 333 done: - todo: task that is done