Added front-matter handler

This commit is contained in:
Mike Farah
2021-07-18 12:28:46 +10:00
parent f6e2ab5cef
commit 555ad0762c
8 changed files with 186 additions and 21 deletions
+17 -1
View File
@@ -13,8 +13,10 @@ type Printer interface {
PrintedAnything() bool
SetPrintLeadingSeperator(bool)
// preamble yaml content
SetPreamble(reader io.Reader)
//e.g. when given a front-matter doc, like jekyll
SetAppendix(reader io.Reader)
}
type resultsPrinter struct {
@@ -30,6 +32,7 @@ type resultsPrinter struct {
printedMatches bool
treeNavigator DataTreeNavigator
preambleReader io.Reader
appendixReader io.Reader
}
func NewPrinter(writer io.Writer, outputToJSON bool, unwrapScalar bool, colorsEnabled bool, indent int, printDocSeparators bool) Printer {
@@ -56,6 +59,10 @@ func (p *resultsPrinter) SetPreamble(reader io.Reader) {
p.preambleReader = reader
}
func (p *resultsPrinter) SetAppendix(reader io.Reader) {
p.appendixReader = reader
}
func (p *resultsPrinter) PrintedAnything() bool {
return p.printedMatches
}
@@ -139,5 +146,14 @@ func (p *resultsPrinter) PrintResults(matchingNodes *list.List) error {
p.previousDocIndex = mappedDoc.Document
}
if p.appendixReader != nil && !p.outputToJSON {
log.Debug("Piping appendix reader...")
betterReader := bufio.NewReader(p.appendixReader)
_, err := io.Copy(bufferedWriter, betterReader)
if err != nil {
return err
}
}
return nil
}