This commit is contained in:
Kenny Jones 2017-09-26 11:15:06 +00:00 committed by GitHub
commit 4cb2c74559
5 changed files with 57 additions and 21 deletions

36
formatter.go Normal file
View File

@ -0,0 +1,36 @@
package main
import (
"bytes"
"fmt"
"io"
yaml "gopkg.in/yaml.v2"
)
func format(context interface{}) (string, error) {
out, err := yaml.Marshal(context)
if err != nil {
return "", fmt.Errorf("error printing yaml: %v", err)
}
var dst bytes.Buffer
// add error checking if indent expanded to ever return an error
_ = indent(&dst, out)
return dst.String(), nil
}
func indent(dst io.ByteWriter, src []byte) error {
for _, c := range src {
switch c {
case '-':
_ = dst.WriteByte(' ')
_ = dst.WriteByte(' ')
_ = dst.WriteByte(c)
default:
_ = dst.WriteByte(c)
}
}
return nil
}

View File

@ -417,11 +417,11 @@ func toString(context interface{}) (string, error) {
}
func yamlToString(context interface{}) (string, error) {
out, err := yaml.Marshal(context)
outStr, err := format(context)
if err != nil {
return "", fmt.Errorf("error printing yaml: %v", err)
}
outStr := string(out)
// trim the trailing new line as it's easier for a script to add
// it in if required than to remove it
if trimOutput {