mirror of
https://github.com/mikefarah/yq.git
synced 2026-07-10 00:05:38 +00:00
add fixes after code revieew
This commit is contained in:
parent
60171740f5
commit
8902f98db1
@ -32,7 +32,7 @@ func (pe *shellVariablesEncoder) PrintLeadingContent(_ io.Writer, _ string) erro
|
|||||||
func (pe *shellVariablesEncoder) Encode(writer io.Writer, node *yaml.Node) error {
|
func (pe *shellVariablesEncoder) Encode(writer io.Writer, node *yaml.Node) error {
|
||||||
|
|
||||||
mapKeysToStrings(node)
|
mapKeysToStrings(node)
|
||||||
err := pe.doEncode(&writer, node, "", nil)
|
err := pe.doEncode(&writer, node, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -40,7 +40,7 @@ func (pe *shellVariablesEncoder) Encode(writer io.Writer, node *yaml.Node) error
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pe *shellVariablesEncoder) doEncode(w *io.Writer, node *yaml.Node, path string, _ *yaml.Node) error {
|
func (pe *shellVariablesEncoder) doEncode(w *io.Writer, node *yaml.Node, path string) error {
|
||||||
|
|
||||||
// Note this drops all comments.
|
// Note this drops all comments.
|
||||||
|
|
||||||
@ -56,10 +56,10 @@ func (pe *shellVariablesEncoder) doEncode(w *io.Writer, node *yaml.Node, path st
|
|||||||
_, err := io.WriteString(*w, nonemptyPath+"="+quoteValue(node.Value)+"\n")
|
_, err := io.WriteString(*w, nonemptyPath+"="+quoteValue(node.Value)+"\n")
|
||||||
return err
|
return err
|
||||||
case yaml.DocumentNode:
|
case yaml.DocumentNode:
|
||||||
return pe.doEncode(w, node.Content[0], path, node)
|
return pe.doEncode(w, node.Content[0], path)
|
||||||
case yaml.SequenceNode:
|
case yaml.SequenceNode:
|
||||||
for index, child := range node.Content {
|
for index, child := range node.Content {
|
||||||
err := pe.doEncode(w, child, appendPath(path, index), nil)
|
err := pe.doEncode(w, child, appendPath(path, index))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -69,14 +69,14 @@ func (pe *shellVariablesEncoder) doEncode(w *io.Writer, node *yaml.Node, path st
|
|||||||
for index := 0; index < len(node.Content); index = index + 2 {
|
for index := 0; index < len(node.Content); index = index + 2 {
|
||||||
key := node.Content[index]
|
key := node.Content[index]
|
||||||
value := node.Content[index+1]
|
value := node.Content[index+1]
|
||||||
err := pe.doEncode(w, value, appendPath(path, key.Value), key)
|
err := pe.doEncode(w, value, appendPath(path, key.Value))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
case yaml.AliasNode:
|
case yaml.AliasNode:
|
||||||
return pe.doEncode(w, node.Alias, path, nil)
|
return pe.doEncode(w, node.Alias, path)
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("Unsupported node %v", node.Tag)
|
return fmt.Errorf("Unsupported node %v", node.Tag)
|
||||||
}
|
}
|
||||||
@ -145,7 +145,7 @@ func quoteValue(value string) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func isAlphaOrUnderscore(r rune) bool {
|
func isAlphaOrUnderscore(r rune) bool {
|
||||||
return ('a' <= r && r <= 'z') || ('A' <= r && r <= 'Z')
|
return ('a' <= r && r <= 'z') || ('A' <= r && r <= 'Z') || r == '_'
|
||||||
}
|
}
|
||||||
|
|
||||||
func isAlphaNumericOrUnderscore(r rune) bool {
|
func isAlphaNumericOrUnderscore(r rune) bool {
|
||||||
|
|||||||
@ -68,6 +68,14 @@ func TestShellVariablesEncoderRootKeyStartingWithDigit(t *testing.T) {
|
|||||||
assertEncodesTo(t, "1a: onea", "_1a=onea")
|
assertEncodesTo(t, "1a: onea", "_1a=onea")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestShellVariablesEncoderRootKeyStartingWithUnderscore(t *testing.T) {
|
||||||
|
assertEncodesTo(t, "_key: value", "_key=value")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestShellVariablesEncoderChildStartingWithUnderscore(t *testing.T) {
|
||||||
|
assertEncodesTo(t, "root:\n _child: value", "root__child=value")
|
||||||
|
}
|
||||||
|
|
||||||
func TestShellVariablesEncoderEmptyValue(t *testing.T) {
|
func TestShellVariablesEncoderEmptyValue(t *testing.T) {
|
||||||
assertEncodesTo(t, "empty:", "empty=")
|
assertEncodesTo(t, "empty:", "empty=")
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user