久しぶりにTerraformを触っていたら、terraform fmt
がカレントディレクトリのファイルしかフォーマットしてくれなくなっていた。
terraform fmt -recursive
としてあげるとディレクトリ配下のファイルもフォーマットしてくれた。
サブディレクトリのファイルをフォーマットしれくれない
terraform fmt
としても、カレントディレクトリのファイルしかフォーマットしてくれなくなっていた。
.
|-- modules
| `-- network
| |-- variables.tf <- フォーマットされない
| `-- main.tf <- フォーマットされない
|-- development.tf
`-- production.tf
fmt
のドキュメントを読んでみると、
By default, fmt scans the current directory for configuration files. If the dir argument is provided then it will scan that given directory instead. If dir is a single dash (-) then fmt will read from standard input (STDIN).
雑に訳すと、「カレントディレクトリのファイルのみフォーマットをする」となっていた。
困った!と思ってオプションを見てみると、
-recursive
- Also process files in subdirectories. By default, only the given directory (or current directory) is processed.
recursive
オプションをつけるとサブディレクトリ内のファイルも見て、フォーマットをしてくれる。
どのバーションから変わったのかを探してみたが、公式が出しているものは見つけられなかった。
結論
Terraformをアップデートしたら、fmt
ではなくfmt -recursive
を使うようにしましょう。
引用