diff --git a/bkl.go b/bkl.go index 5aee91f..8ad0187 100644 --- a/bkl.go +++ b/bkl.go @@ -52,6 +52,19 @@ func (p *Parser) SetDebug(debug bool) { p.debug = debug } +// MergeOther applies other's internal document state to ours, using bkl's +// merge semantics. +func (p *Parser) MergeOther(other *Parser) error { + for i, doc := range other.docs { + err := p.MergePatch(i, doc) + if err != nil { + return err + } + } + + return nil +} + // MergePatch applies the supplied patch to the [Parser]'s current internal // document state (at the specified document index) using bkl's merge // semantics. diff --git a/cmd/bkl/main.go b/cmd/bkl/main.go index 0d50f3f..50c369d 100644 --- a/cmd/bkl/main.go +++ b/cmd/bkl/main.go @@ -35,7 +35,12 @@ func main() { } for _, path := range opts.Positional.InputPaths { - err := p.MergeFileLayers(path) + fileP, err := bkl.NewFromFile(path) + if err != nil { + fatal("%s", err) + } + + err = p.MergeOther(fileP) if err != nil { fatal("%s", err) } diff --git a/tests/tree/expected b/tests/tree/expected index e69de29..49271ae 100644 --- a/tests/tree/expected +++ b/tests/tree/expected @@ -0,0 +1,4 @@ +a: 1 +b: 2 +c: 3 +d: 4