// Generated by conforma CLI documentation tooling. DO NOT EDIT.
= ec opa fmt

Format Rego source files

== Synopsis

Format Rego source files.

The 'fmt' command takes a Rego source file and outputs a reformatted version. If no file path
is provided - this tool will use stdin.
The format of the output is not defined specifically; whatever this tool outputs
is considered correct format (with the exception of bugs).

If the '-w' option is supplied, the 'fmt' command will overwrite the source file
instead of printing to stdout.

If the '-d' option is supplied, the 'fmt' command will output a diff between the
original and formatted source.

If the '-l' option is supplied, the 'fmt' command will output the names of files
that would change if formatted. The '-l' option will suppress any other output
to stdout from the 'fmt' command.

If the '--fail' option is supplied, the 'fmt' command will return a non zero exit
code if a file would be reformatted.

The 'fmt' command can be run in several compatibility modes for consuming and outputting
different Rego versions:

* `opa fmt`:
  * v1 Rego is formatted to v1
  * `rego.v1`/`future.keywords` imports are NOT removed
  * `rego.v1`/`future.keywords` imports are NOT added if missing
  * v0 rego is rejected
* `opa fmt --v0-compatible`:
  * v0 Rego is formatted to v0
  * v1 Rego is rejected
* `opa fmt --v0-v1`:
  * v0 Rego is formatted to be compatible with v0 AND v1
  * v1 Rego is rejected
* `opa fmt --v0-v1 --v1-compatible`:
  * v1 Rego is formatted to be compatible with v0 AND v1
  * v0 Rego is rejected

[source,shell]
----
ec opa fmt [path [...]] [flags]
----
== Options

--capabilities:: set capabilities version or capabilities.json file path
--check-result:: assert that the formatted code is valid and can be successfully parsed (Default: true)
-d, --diff:: only display a diff of the changes (Default: false)
--drop-v0-imports:: drop v0 imports from the formatted code, such as 'rego.v1' and 'future.keywords' (Default: false)
--fail:: non zero exit code on reformat (Default: false)
-h, --help:: help for fmt (Default: false)
-l, --list:: list all files who would change when formatted (Default: false)
--rego-v1:: format module(s) to be compatible with both Rego v0 and v1 (Default: false)
--v0-compatible:: opt-in to OPA features and behaviors prior to the OPA v1.0 release (Default: false)
--v0-v1:: format module(s) to be compatible with both Rego v0 and v1 (Default: false)
--v1-compatible:: opt-in to OPA features and behaviors that are enabled by default in OPA v1.0 (Default: false)
-w, --write:: overwrite the original source file (Default: false)

== Options inherited from parent commands

--debug:: same as verbose but also show function names and line numbers (Default: false)
--kubeconfig:: path to the Kubernetes config file to use
--logfile:: file to write the logging output. If not specified logging output will be written to stderr
--quiet:: less verbose output (Default: false)
--retry-duration:: base duration for exponential backoff calculation (Default: 1s)
--retry-factor:: exponential backoff multiplier (Default: 2)
--retry-jitter:: randomness factor for backoff calculation (0.0-1.0) (Default: 0.1)
--retry-max-retry:: maximum number of retry attempts (Default: 3)
--retry-max-wait:: maximum wait time between retries (Default: 3s)
--timeout:: max overall execution duration (Default: 5m0s)
--trace:: enable trace logging, set one or more comma separated values: none,all,perf,cpu,mem,opa,log (Default: none)
--verbose:: more verbose output (Default: false)

== See also

 * xref:ec_opa.adoc[ec opa - Open Policy Agent (OPA) (embedded)]
