Added the parse option to yamltool because it gives much better error messages than yuamllint and yq.
This commit is contained in:
parent
ef0ef6e215
commit
6162670570
@ -2,7 +2,11 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/goccy/go-yaml"
|
"github.com/goccy/go-yaml"
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -24,3 +28,13 @@ func parse(data []byte) (yaml.MapSlice, error) {
|
|||||||
}
|
}
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseFiles(cmd *cobra.Command, args []string) error {
|
||||||
|
for _, arg := range args {
|
||||||
|
_, err := parse(read(arg))
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("%s: %v\n", arg, err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@ -57,6 +57,16 @@ Shows the additions and modifications in <file2> compared to <file1>`,
|
|||||||
}
|
}
|
||||||
cmd.AddCommand(merge)
|
cmd.AddCommand(merge)
|
||||||
|
|
||||||
|
parse := &cobra.Command{
|
||||||
|
Use: "parse [file1] ... [fileN]",
|
||||||
|
Short: "Parse yaml files.",
|
||||||
|
Long: `Parse yaml files, usually gives better error messages than yamllint or yq`,
|
||||||
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
|
return parseFiles(cmd, args)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
cmd.AddCommand(parse)
|
||||||
|
|
||||||
diff.PersistentFlags().IntVarP(&VERBOSITY, "array-output-level",
|
diff.PersistentFlags().IntVarP(&VERBOSITY, "array-output-level",
|
||||||
"v", 3, `Array output level: ,
|
"v", 3, `Array output level: ,
|
||||||
0: no output, only exit status,
|
0: no output, only exit status,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user