pttodo/cmd/cli.go

54 lines
756 B
Go

package main
import (
"bytes"
"flag"
"fmt"
"io"
"io/ioutil"
"local/pt-todo-server/pttodo"
"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
}
root.MoveScheduledToTodo()
b2, err := yaml.Marshal(root)
if err != nil {
return err
}
fmt.Printf("%s\n", b2)
return nil
}