open-nomad/website/content/docs/commands/fmt.mdx
Tim Gross 4fabad7f61
cli: fmt -check should return early on diff (#16174)
The `nomad fmt -check` command incorrectly writes to file because we didn't
return before writing the file on a diff. Fix this bug and update the command
internals to differentiate between the write-to-file and write-to-stdout code
paths, which are activated by different combinations of options and flags.

The docstring for the `-list` and `-write` flags is also unclear and can be
easily misread to be the opposite of the actual behavior. Clarify this and fix
up the docs to match.

This changeset also refactors the tests quite a bit so as to make the test
outputs clear when something is incorrect.
2023-02-15 14:06:31 -05:00

68 lines
1.5 KiB
Plaintext

---
layout: docs
page_title: 'Commands: fmt'
description: |
Rewrite Nomad config and job files to canonical format
---
# Command: fmt
The `fmt` commands check the syntax and rewrites Nomad configuration and jobspec
files to canonical format. It can be used to improve readability and enforce
consistency of style in Nomad files.
## Usage
```plaintext
nomad fmt [flags] paths ...
```
Formats Nomad agent configuration and job file to a canonical format. If a path
is a directory, it will recursively format all files with .nomad and .hcl
extensions in the directory.
If you provide a single dash (-) as argument, fmt will read from standard input
(STDIN) and output the processed output to standard output (STDOUT).
## Format Options:
- `-check`: Check if the files are valid HCL files. If not, exit status of the
command will be 1 and the incorrect files will not be formatted. This flag
overrides any `-write` flag value.
- `-list`: List the files which contain formatting inconsistencies. Defaults to
`-list=true`.
- `-recursive`: Process files in subdirectories. By default only the given (or
current) directory is processed.
- `-write`: Overwrite the input files. Defaults to `-write=true`.
## Examples
```shell-session
$ cat agent.hcl
server {
enabled = true
bootstrap_expect = 1
}
client {
enabled = true
}
```
```shell-session
$ nomad fmt
agent.hcl
```
```shell-session
$ cat agent.hcl
server {
enabled = true
bootstrap_expect = 1
}
client {
enabled = true
}
```