Files
interpres/man/interpres-decode.1
T
petrbalvin 3e741e7790
Test / test (push) Successful in 1m35s
feat(cmd): add version, plain json, struct inference and schema modes
Assisted-by: GLM 5.3 Flash
2026-09-22 00:55:02 +02:00

139 lines
3.0 KiB
Groff

.TH INTERPRES-DECODE 1 "2026-09-21" "interpres 2.0.0" "User Commands"
.SH NAME
interpres-decode \- TOML validator and toml-test harness adapter
.SH SYNOPSIS
.B interpres-decode
[\fIFLAGS\fR]
.br
.B interpres-decode
.B \-encode
.br
.B interpres-decode
.B \-validate
[\fIFILE\fR...]
.br
.B interpres-decode
.B \-validate
[\fIDIRECTORY\fR...]
.br
.B interpres-decode
.B \-json
.br
.B interpres-decode
.B \-struct
.br
.B interpres-decode
.B \-schema
\fITYPE\fR
\fIFILE.go\fR
.br
.B interpres-decode
.B \-version
.SH DESCRIPTION
.B interpres-decode
is the toml-test harness adapter in both directions and a TOML validator.
Without a mode flag it reads one TOML document from standard input and writes
the toml-test tagged-JSON representation to standard output.
.B \-encode
reads a tagged-JSON description from standard input and writes the TOML
document it describes.
.B \-validate
parses each named file, or standard input when none are named, and prints one
line per invalid document to standard error; a named directory is walked for
.B .toml
files, every one validated, and the walk closes with a summary on standard
error naming the counts. The name
.B \-
means standard input.
.B \-json
prints plain indented JSON instead of the tagged form.
.B \-struct
prints a Go struct definition inferred from the document on standard input.
.B \-schema
writes a TOML template for the struct type
\fITYPE\fR
declared in the Go source file
\fIFILE.go\fR,
taking the key names, comments and defaults from the fields' tags.
.B \-version
prints the binary's version and exits.
.PP
The mode flags
.BR \-validate ,
.BR \-encode ,
.B \-struct
and
.B \-schema
cannot be combined.
.SH OPTIONS
.TP
.B \-validate
Validate the documents instead of emitting tagged JSON.
.TP
.B \-encode
Read tagged JSON from standard input and write TOML instead.
.TP
.B \-json
With the default mode, print plain indented JSON instead of tagged JSON.
.TP
.B \-struct
Infer a Go struct definition from the document on standard input and print it.
.TP
.BI \-schema " TYPE"
Write a TOML template for the struct type \fITYPE\fR; the Go source file
follows as the first argument.
.TP
.B \-version
Print the version and exit.
.TP
.B \-h
Print the usage.
.SH EXIT STATUS
.TP
.B 0
The document parsed and the output was written; in validate mode, every
document parsed.
.TP
.B 1
Adapter: a parse error. Validate: at least one document is invalid.
.TP
.B 2
A usage error, a read failure, malformed tagged JSON, or a value with no TOML
representation.
.SH EXAMPLES
Decode a document into tagged JSON:
.PP
.nf
.RS
echo 'title = "hello"' | interpres-decode
.RE
.fi
.PP
Validate a directory of configuration, with the summary:
.PP
.nf
.RS
interpres-decode -validate configs/
.RE
.fi
.PP
Infer a Go type from a document:
.PP
.nf
.RS
interpres-decode -struct < config.toml > config.go
.RE
.fi
.PP
Write the template back from the type:
.PP
.nf
.RS
interpres-decode -schema Config config.go
.RE
.fi
.SH SEE ALSO
The repository's
.B docs/CLI.md
carries the full reference, including the tagged-JSON wire format.