diff --git a/README.md b/README.md index 83fcb194..f6b33399 100644 --- a/README.md +++ b/README.md @@ -260,7 +260,6 @@ Flags: -C, --colors force print with colors -e, --exit-status set exit status if there are no matches or null or false is returned -f, --front-matter string (extract|process) first input as yaml front-matter. Extract will pull out the yaml content, process will run the expression against the yaml content, leaving the remaining data intact - --header-preprocess Slurp any header comments and seperators before processing expression. This is a workaround for go-yaml to persist header content. This flag will be removed once this feature has been out in the wild for a while. (default true) -h, --help help for yq -I, --indent int sets indent level for output (default 2) -i, --inplace update the yaml file inplace of first yaml file given. diff --git a/cmd/constant.go b/cmd/constant.go index 9b6369c9..399c1d7b 100644 --- a/cmd/constant.go +++ b/cmd/constant.go @@ -1,6 +1,5 @@ package cmd -var leadingContentPreProcessing = true var unwrapScalar = true var writeInplace = false diff --git a/cmd/evaluate_all_command.go b/cmd/evaluate_all_command.go index bb3f04bf..c33a085b 100644 --- a/cmd/evaluate_all_command.go +++ b/cmd/evaluate_all_command.go @@ -118,7 +118,7 @@ func evaluateAll(cmd *cobra.Command, args []string) error { switch len(args) { case 0: if pipingStdIn { - err = allAtOnceEvaluator.EvaluateFiles(processExpression(""), []string{"-"}, printer, leadingContentPreProcessing) + err = allAtOnceEvaluator.EvaluateFiles(processExpression(""), []string{"-"}, printer) } else { cmd.Println(cmd.UsageString()) return nil @@ -127,10 +127,10 @@ func evaluateAll(cmd *cobra.Command, args []string) error { if nullInput { err = yqlib.NewStreamEvaluator().EvaluateNew(processExpression(args[0]), printer, "") } else { - err = allAtOnceEvaluator.EvaluateFiles(processExpression(""), []string{args[0]}, printer, leadingContentPreProcessing) + err = allAtOnceEvaluator.EvaluateFiles(processExpression(""), []string{args[0]}, printer) } default: - err = allAtOnceEvaluator.EvaluateFiles(processExpression(args[0]), args[1:], printer, leadingContentPreProcessing) + err = allAtOnceEvaluator.EvaluateFiles(processExpression(args[0]), args[1:], printer) } completedSuccessfully = err == nil diff --git a/cmd/evalute_sequence_command.go b/cmd/evalute_sequence_command.go index c5daea88..2d9c926a 100644 --- a/cmd/evalute_sequence_command.go +++ b/cmd/evalute_sequence_command.go @@ -133,7 +133,7 @@ func evaluateSequence(cmd *cobra.Command, args []string) error { switch len(args) { case 0: if pipingStdIn { - err = streamEvaluator.EvaluateFiles(processExpression(""), []string{"-"}, printer, leadingContentPreProcessing) + err = streamEvaluator.EvaluateFiles(processExpression(""), []string{"-"}, printer) } else { cmd.Println(cmd.UsageString()) return nil @@ -142,10 +142,10 @@ func evaluateSequence(cmd *cobra.Command, args []string) error { if nullInput { err = streamEvaluator.EvaluateNew(processExpression(args[0]), printer, "") } else { - err = streamEvaluator.EvaluateFiles(processExpression(""), []string{args[0]}, printer, leadingContentPreProcessing) + err = streamEvaluator.EvaluateFiles(processExpression(""), []string{args[0]}, printer) } default: - err = streamEvaluator.EvaluateFiles(processExpression(args[0]), args[1:], printer, leadingContentPreProcessing) + err = streamEvaluator.EvaluateFiles(processExpression(args[0]), args[1:], printer) } completedSuccessfully = err == nil diff --git a/cmd/root.go b/cmd/root.go index 219b1a2c..0057f599 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -62,7 +62,6 @@ See https://mikefarah.gitbook.io/yq/ for detailed documentation and examples.`, rootCmd.PersistentFlags().BoolVarP(&forceColor, "colors", "C", false, "force print with colors") rootCmd.PersistentFlags().BoolVarP(&forceNoColor, "no-colors", "M", false, "force print with no colors") rootCmd.PersistentFlags().StringVarP(&frontMatter, "front-matter", "f", "", "(extract|process) first input as yaml front-matter. Extract will pull out the yaml content, process will run the expression against the yaml content, leaving the remaining data intact") - rootCmd.PersistentFlags().BoolVarP(&leadingContentPreProcessing, "header-preprocess", "", true, "Slurp any header comments and separators before processing expression. This is a workaround for go-yaml to persist header content. This flag will be removed once this feature has been out in the wild for a while.") rootCmd.AddCommand( createEvaluateSequenceCommand(), createEvaluateAllCommand(), diff --git a/go.mod b/go.mod index 24097d7b..91feb37b 100644 --- a/go.mod +++ b/go.mod @@ -9,17 +9,9 @@ require ( github.com/spf13/cobra v1.1.3 github.com/timtadh/data-structures v0.5.3 // indirect github.com/timtadh/lexmachine v0.2.2 - golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect + golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e // indirect gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b ) -require ( - github.com/inconshreveable/mousetrap v1.0.0 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect - github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect -) - go 1.17 diff --git a/go.sum b/go.sum index af6a6bfd..b5c382d3 100644 --- a/go.sum +++ b/go.sum @@ -258,8 +258,8 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e h1:WUoyKPm6nCo1BnNUvPGnFG3T5DUVem42yDJZZ4CNxMA= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -281,6 +281,7 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc h1:NCy3Ohtk6Iny5V/reW2Ktypo4zIpWBdRJ1uFMjBxdg8= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= diff --git a/pkg/yqlib/all_at_once_evaluator.go b/pkg/yqlib/all_at_once_evaluator.go index e691f242..a88ad156 100644 --- a/pkg/yqlib/all_at_once_evaluator.go +++ b/pkg/yqlib/all_at_once_evaluator.go @@ -8,7 +8,7 @@ import ( // A yaml expression evaluator that runs the expression once against all files/nodes in memory. type Evaluator interface { - EvaluateFiles(expression string, filenames []string, printer Printer, leadingContentPreProcessing bool) error + EvaluateFiles(expression string, filenames []string, printer Printer) error // EvaluateNodes takes an expression and one or more yaml nodes, returning a list of matching candidate nodes EvaluateNodes(expression string, nodes ...*yaml.Node) (*list.List, error) @@ -46,13 +46,13 @@ func (e *allAtOnceEvaluator) EvaluateCandidateNodes(expression string, inputCand return context.MatchingNodes, nil } -func (e *allAtOnceEvaluator) EvaluateFiles(expression string, filenames []string, printer Printer, leadingContentPreProcessing bool) error { +func (e *allAtOnceEvaluator) EvaluateFiles(expression string, filenames []string, printer Printer) error { fileIndex := 0 firstFileLeadingContent := "" var allDocuments *list.List = list.New() for _, filename := range filenames { - reader, leadingContent, err := readStream(filename, fileIndex == 0 && leadingContentPreProcessing) + reader, leadingContent, err := readStream(filename, fileIndex == 0) if err != nil { return err } diff --git a/pkg/yqlib/stream_evaluator.go b/pkg/yqlib/stream_evaluator.go index 84cebc2c..84dc2093 100644 --- a/pkg/yqlib/stream_evaluator.go +++ b/pkg/yqlib/stream_evaluator.go @@ -13,7 +13,7 @@ import ( // cross document expressions. type StreamEvaluator interface { Evaluate(filename string, reader io.Reader, node *ExpressionNode, printer Printer, leadingContent string) (uint, error) - EvaluateFiles(expression string, filenames []string, printer Printer, leadingContentPreProcessing bool) error + EvaluateFiles(expression string, filenames []string, printer Printer) error EvaluateNew(expression string, printer Printer, leadingContent string) error } @@ -48,7 +48,7 @@ func (s *streamEvaluator) EvaluateNew(expression string, printer Printer, leadin return printer.PrintResults(result.MatchingNodes) } -func (s *streamEvaluator) EvaluateFiles(expression string, filenames []string, printer Printer, leadingContentPreProcessing bool) error { +func (s *streamEvaluator) EvaluateFiles(expression string, filenames []string, printer Printer) error { var totalProcessDocs uint = 0 node, err := s.treeCreator.ParseExpression(expression) if err != nil { @@ -58,7 +58,7 @@ func (s *streamEvaluator) EvaluateFiles(expression string, filenames []string, p var firstFileLeadingContent string for index, filename := range filenames { - reader, leadingContent, err := readStream(filename, leadingContentPreProcessing) + reader, leadingContent, err := readStream(filename, true) if index == 0 { firstFileLeadingContent = leadingContent