feat(cmd): add version, plain json, struct inference and schema modes
Test / test (push) Successful in 1m35s
Test / test (push) Successful in 1m35s
Assisted-by: GLM 5.3 Flash
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
.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.
|
||||
Reference in New Issue
Block a user