1
0
mirror of https://github.com/taigrr/yq synced 2025-01-18 04:53:17 -08:00

Extracted out evaluators

This commit is contained in:
Mike Farah
2020-11-22 11:56:28 +11:00
parent e451119014
commit fc3af441e5
8 changed files with 156 additions and 114 deletions

View File

@@ -40,23 +40,23 @@ func evaluateAll(cmd *cobra.Command, args []string) error {
colorsEnabled = true
}
printer := yqlib.NewPrinter(out, outputToJSON, unwrapScalar, colorsEnabled, indent, !noDocSeparators)
allAtOnceEvaluator := yqlib.NewAllAtOnceEvaluator()
switch len(args) {
case 0:
if pipingStdIn {
err = yqlib.EvaluateAllFileStreams("", []string{"-"}, printer)
err = allAtOnceEvaluator.EvaluateFiles("", []string{"-"}, printer)
} else {
cmd.Println(cmd.UsageString())
return nil
}
case 1:
if nullInput {
err = yqlib.EvaluateAllFileStreams(args[0], []string{}, printer)
err = allAtOnceEvaluator.EvaluateFiles(args[0], []string{}, printer)
} else {
err = yqlib.EvaluateAllFileStreams("", []string{args[0]}, printer)
err = allAtOnceEvaluator.EvaluateFiles("", []string{args[0]}, printer)
}
default:
err = yqlib.EvaluateAllFileStreams(args[0], args[1:], printer)
err = allAtOnceEvaluator.EvaluateFiles(args[0], args[1:], printer)
}
cmd.SilenceUsage = true

View File

@@ -41,22 +41,25 @@ func evaluateSequence(cmd *cobra.Command, args []string) error {
}
printer := yqlib.NewPrinter(out, outputToJSON, unwrapScalar, colorsEnabled, indent, !noDocSeparators)
streamEvaluator := yqlib.NewStreamEvaluator()
allAtOnceEvaluator := yqlib.NewAllAtOnceEvaluator()
switch len(args) {
case 0:
if pipingStdIn {
err = yqlib.EvaluateFileStreamsSequence("", []string{"-"}, printer)
err = streamEvaluator.EvaluateFiles("", []string{"-"}, printer)
} else {
cmd.Println(cmd.UsageString())
return nil
}
case 1:
if nullInput {
err = yqlib.EvaluateAllFileStreams(args[0], []string{}, printer)
err = allAtOnceEvaluator.EvaluateFiles(args[0], []string{}, printer)
} else {
err = yqlib.EvaluateFileStreamsSequence("", []string{args[0]}, printer)
err = streamEvaluator.EvaluateFiles("", []string{args[0]}, printer)
}
default:
err = yqlib.EvaluateFileStreamsSequence(args[0], args[1:], printer)
err = streamEvaluator.EvaluateFiles(args[0], args[1:], printer)
}
cmd.SilenceUsage = true