INNER CODE UNIT · Go
writeSchemaFile
yannh/kubeconform · openapi2jsonschema-go/openapi2jsonschema.go:209
func writeSchemaFile(schema any, filename string, denyRootAdditionalProperties bool) error {
schema = additionalProperties(schema, !denyRootAdditionalProperties)
schema = replaceIntOrString(schema)
var buf bytes.Buffer
enc := json.NewEncoder(&buf)
enc.SetEscapeHTML(false)
enc.SetIndent("", " ")
if err := enc.Encode(schema); err != nil {
return err
}
// Encoder appends "\n"; Python's `print(s, file=f)` also appends one.
// json.dumps itself does not, so the encoder's newline matches print().
// Treat the input as a path component only — guard against directory
// traversal in user-supplied filenames.
filename = filepath.Base(filename)
if err := os.WriteFile(filename, buf.Bytes(), 0o644); err != nil {