Compare commits
2 Commits
45b2060083
...
29bc6a06b4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29bc6a06b4 | ||
|
|
44488aec2d |
15
cmd/main.go
15
cmd/main.go
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
@@ -59,7 +60,7 @@ func dedupe(config *config) error {
|
||||
|
||||
var base pttodo.Root
|
||||
if err := yaml.Unmarshal(baseB, &base); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("failed to parse yaml in %s: %w", config.target, err)
|
||||
}
|
||||
|
||||
do := func(todos []pttodo.Todo) []pttodo.Todo {
|
||||
@@ -120,10 +121,10 @@ func archive(config *config) error {
|
||||
|
||||
var base, archive pttodo.Root
|
||||
if err := yaml.Unmarshal(baseB, &base); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("failed to parse yaml in %s: %w", config.target, err)
|
||||
}
|
||||
if err := yaml.Unmarshal(archiveB, &archive); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("failed to parse yaml in %s: %w", config.archive, err)
|
||||
}
|
||||
|
||||
archive.Done = append(archive.Done, base.Done...)
|
||||
@@ -174,10 +175,10 @@ func merge(config *config) error {
|
||||
|
||||
var base, merging pttodo.Root
|
||||
if err := yaml.Unmarshal(baseB, &base); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("failed to parse yaml in %s: %w", config.target, err)
|
||||
}
|
||||
if err := yaml.Unmarshal(mergingB, &merging); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("failed to parse yaml in %s: %w", config.target2, err)
|
||||
}
|
||||
|
||||
slurp := func(dst, src *[]pttodo.Todo) {
|
||||
@@ -242,10 +243,10 @@ func _merge(filepath string, mergeTargetFilePath string) error {
|
||||
|
||||
var base, merging pttodo.Root
|
||||
if err := yaml.Unmarshal(baseB, &base); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("failed to parse yaml in %s: %w", filepath, err)
|
||||
}
|
||||
if err := yaml.Unmarshal(mergingB, &merging); err != nil {
|
||||
return err
|
||||
return fmt.Errorf("failed to parse yaml in %s: %w", mergeTargetFilePath, err)
|
||||
}
|
||||
|
||||
base.MergeIn(merging)
|
||||
|
||||
@@ -2,6 +2,7 @@ package pttodo
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
yaml "gopkg.in/yaml.v2"
|
||||
@@ -44,7 +45,7 @@ func NewRootFromFile(p string) (Root, error) {
|
||||
if err := yaml.NewDecoder(f).Decode(&result); err != nil {
|
||||
todos, err2 := NewTodosFromFile(p)
|
||||
if err2 != nil {
|
||||
return Root{}, err
|
||||
return Root{}, fmt.Errorf("failed to parse yaml from %s: %w", p, err)
|
||||
}
|
||||
result.Todo = todos
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package pttodo
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"math"
|
||||
"regexp"
|
||||
"strconv"
|
||||
@@ -17,7 +18,10 @@ func (schedule Schedule) MarshalJSON() ([]byte, error) {
|
||||
}
|
||||
|
||||
func (schedule *Schedule) UnmarshalJSON(b []byte) error {
|
||||
return json.Unmarshal(b, (*string)(schedule))
|
||||
if err := json.Unmarshal(b, (*string)(schedule)); err != nil {
|
||||
return fmt.Errorf("failed to parse json from %q: %w", b, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (schedule Schedule) Next(t time.Time) (time.Time, error) {
|
||||
|
||||
@@ -32,7 +32,7 @@ func NewTodosFromFile(p string) ([]Todo, error) {
|
||||
|
||||
var result []Todo
|
||||
if err := yaml.NewDecoder(f).Decode(&result); err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("failed to parse yaml from %s: %w", p, err)
|
||||
}
|
||||
|
||||
return result, nil
|
||||
|
||||
@@ -3,6 +3,7 @@ package pttodo
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
yaml "gopkg.in/yaml.v2"
|
||||
@@ -33,7 +34,10 @@ func (ts TS) MarshalYAML() (interface{}, error) {
|
||||
}
|
||||
|
||||
func (ts *TS) UnmarshalJSON(b []byte) error {
|
||||
return yaml.Unmarshal(b, ts)
|
||||
if err := yaml.Unmarshal(b, ts); err != nil {
|
||||
return fmt.Errorf("faild to unmarshal TS from %q: %w", b, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ts *TS) UnmarshalYAML(unmarshaller func(interface{}) error) error {
|
||||
|
||||
BIN
pttodoer/.DS_Store
vendored
Normal file
BIN
pttodoer/.DS_Store
vendored
Normal file
Binary file not shown.
Reference in New Issue
Block a user