跳至主要内容

命令:fmt

tofu fmt 命令用于将 OpenTofu 配置文件重写为规范的格式和样式。此命令应用了 OpenTofu 语言样式约定 的一个子集,以及其他一些用于提高可读性的细微调整。

其他生成 OpenTofu 配置的 OpenTofu 命令将生成符合 tofu fmt 强制实施的样式的配置文件,因此在您自己的文件中使用此样式将确保一致性。

规范格式在 OpenTofu 版本之间可能会以细微的方式发生变化,因此在升级 OpenTofu 后,我们建议您主动对您的模块运行 tofu fmt 以及您正在进行的任何其他更改以采用新版本。

我们不认为 tofu fmt 中的新格式规则在新版本的 OpenTofu 中是重大更改,但我们确实旨在最大程度地减少对已遵循 OpenTofu 文档中所示样式示例的配置的更改。在添加新的格式规则时,它们通常旨在应用更多已经在文档中的配置示例中显示的规则,因此我们建议您遵循已记录的样式,即使对于 tofu fmt 尚未自动应用的决策也是如此。

格式化决策总是主观的,因此您可能不同意 tofu fmt 做出的决策。此命令有意具有主见,并且没有自定义选项,因为其主要目标是鼓励不同 OpenTofu 代码库之间的一致性,即使所选样式永远不可能是每个人的最爱。

我们建议您在编写 OpenTofu 模块时遵循 tofu fmt 应用的样式约定,但如果您发现结果特别令人反感,则可以选择不使用此命令,并可能选择使用第三方格式化工具。如果您选择使用第三方工具,则还应将其应用于 OpenTofu 自动生成的 文件,以确保您手写文件与生成文件之间的一致性。

用法

用法:tofu fmt [选项] [目标...]

默认情况下,fmt 会扫描当前目录以查找配置文件。如果您为 target 参数提供一个目录,则 fmt 将改为扫描该目录。如果您提供一个文件,则 fmt 将只处理该文件。如果您提供一个单破折号 (-),则 fmt 将从标准输入 (STDIN) 读取。

命令行标志都是可选的。以下标志可用

  • -list=false - 不列出包含格式不一致的文件。
  • -write=false - 不覆盖输入文件。(这由 -check 或输入为 STDIN 时隐含。)
  • -diff - 显示格式更改的差异。
  • -check - 检查输入是否已格式化。如果所有输入都已正确格式化,则退出状态将为 0。否则,退出状态将为非零,并且命令将输出一个文件名列表,这些文件的文件未正确格式化。
  • -recursive - 还处理子目录中的文件。默认情况下,只处理给定的目录(或当前目录)。