From 1b22e1d812e7fc4eb1173b1d3085e77b954586de Mon Sep 17 00:00:00 2001 From: Mike Farah Date: Fri, 15 Jun 2018 09:03:42 +1000 Subject: [PATCH] Fixed delete command for arrays --- yq.go | 14 ++++---------- yq_test.go | 8 ++++++++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/yq.go b/yq.go index c03e2a6..60dc210 100644 --- a/yq.go +++ b/yq.go @@ -362,7 +362,7 @@ func deleteProperty(cmd *cobra.Command, args []string) error { } func deleteYaml(args []string) (interface{}, error) { - var parsedData yaml.MapSlice + var parsedData interface{} var deletePath string if len(args) < 2 { @@ -372,17 +372,11 @@ func deleteYaml(args []string) (interface{}, error) { deletePath = args[1] if err := readData(args[0], 0, &parsedData); err != nil { - var generalData interface{} - if err = readData(args[0], 0, &generalData); err != nil { - return nil, err - } - item := yaml.MapItem{Key: "thing", Value: generalData} - parsedData = yaml.MapSlice{item} - deletePath = "thing." + deletePath + return nil, err } - path := parsePath(deletePath) - return deleteMap(parsedData, path), nil + paths := parsePath(deletePath) + return deleteChildValue(parsedData, paths), nil } func mergeProperties(cmd *cobra.Command, args []string) error { diff --git a/yq_test.go b/yq_test.go index ff8cf5c..074d569 100644 --- a/yq_test.go +++ b/yq_test.go @@ -106,3 +106,11 @@ func TestDeleteYaml(t *testing.T) { "[{a Easy! as one two three} {b [{d [3 4]} {e [[{name fred} {value 3}] [{name sam} {value 4}]]}]}]", formattedResult) } + +func TestDeleteYamlArray(t *testing.T) { + result, _ := deleteYaml([]string{"examples/sample_array.yaml", "[1]"}) + formattedResult := fmt.Sprintf("%v", result) + assertResult(t, + "[1 3]", + formattedResult) +}