package main import ( "io/ioutil" "os" "gogs.inhome.blapointe.com/bel/pttodo/pttodo" "gopkg.in/yaml.v2" ) func add(config config) error { if config.add == "" { return nil } v := pttodo.Todo{ Todo: config.add, Schedule: pttodo.Schedule(config.addSchedule), Tags: config.addTags, } return _add(config.targets, v) } func _add(filepaths []string, todo pttodo.Todo) error { target := filepaths[0] var original pttodo.Root r, err := filePathReader(target) if err != nil { return err } if err := yaml.NewDecoder(r).Decode(&original); err != nil { return err } original.Todo = append([]pttodo.Todo{todo}, original.Todo...) original.AutoMove() c, err := yaml.Marshal(original) if err != nil { return err } else if err := ioutil.WriteFile(target, c, os.ModePerm); err != nil { return err } return nil }