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 {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…