How to use the command 'terraform fmt' (with examples)
Terraform is an open-source infrastructure as code software tool that provides a consistent CLI workflow to manage cloud service providers. The terraform fmt
command is used to format the Terraform configuration according to Terraform language style conventions. It helps to maintain a consistent code style and improves readability of the configuration files.
Use case 1: Format the configuration in the current directory
Code:
terraform fmt
Motivation:
By running terraform fmt
in the current directory, it automatically formats the Terraform configuration files in a standardized and consistent way. This ensures that the code is easier to read and maintain, especially in projects with multiple contributors.
Explanation:
terraform
: The Terraform command-line tool.fmt
: Short for “format”, it is the command used to format the Terraform configuration.
Example output: The command will format the configuration files in the current directory according to Terraform language style conventions. It may display a list of files that were formatted, showing the changes made, if any.
Use case 2: Format the configuration in the current directory and subdirectories
Code:
terraform fmt -recursive
Motivation:
In large projects, it is common to have a nested directory structure with Terraform configuration files. By using the -recursive
flag, the command formats all the configuration files not only in the current directory but also in any subdirectories present.
Explanation:
-recursive
: A flag that indicates that the command should traverse nested directories and format the Terraform configuration files found in them.
Example output: The command will recursively format all the Terraform configuration files in the current directory and any subdirectories. It may display a list of files that were formatted, along with the changes made, if any.
Use case 3: Display diffs of formatting changes
Code:
terraform fmt -diff
Motivation:
Sometimes, it is helpful to see the differences between the original configuration file and the formatted version. By using the -diff
flag, the command shows a diff of the formatting changes applied to each file.
Explanation:
-diff
: A flag that displays the diffs of the formatting changes made to the Terraform configuration files.
Example output: The command will format the Terraform configuration files in the current directory and display the diffs of the formatting changes made to each file. This helps to see what changes were applied and review the modifications made.
Use case 4: Do not list files that were formatted to stdout
Code:
terraform fmt -list=false
Motivation:
By default, the terraform fmt
command lists the files that were formatted to the standard output (stdout). However, in some cases, you may not want to see this list. By using the -list=false
flag, the output list of files is suppressed.
Explanation:
-list=false
: A flag that specifies whether or not to list the files that were formatted. When set tofalse
, the list is suppressed.
Example output: The command will format the Terraform configuration files in the current directory but will not display a list of files that were formatted. The output will only contain any error messages or changes made.
Conclusion:
The terraform fmt
command is a powerful tool for maintaining consistent code style and improving readability of Terraform configuration files. With options like formatting in subdirectories and displaying formatting diffs, it becomes easier to manage and collaborate on infrastructure as code projects.