2020-10-27 02:15:36 +01:00
|
|
|
---
|
2021-12-15 03:41:17 +01:00
|
|
|
page_title: Writing and Modifying Code - Terraform CLI
|
|
|
|
description: >-
|
|
|
|
Learn commands that help validate, format, and upgrade code written in the
|
|
|
|
Terraform Configuration Language.
|
2020-10-27 02:15:36 +01:00
|
|
|
---
|
|
|
|
|
|
|
|
# Writing and Modifying Terraform Code
|
|
|
|
|
2021-12-15 03:41:17 +01:00
|
|
|
The [Terraform language](/language) is Terraform's primary
|
2020-10-27 02:15:36 +01:00
|
|
|
user interface, and all of Terraform's workflows rely on configurations written
|
|
|
|
in the Terraform language.
|
|
|
|
|
|
|
|
Terraform CLI includes several commands to make Terraform code more convenient
|
|
|
|
to work with. Integrating these commands into your editing workflow can
|
|
|
|
potentially save you time and effort.
|
|
|
|
|
2021-12-15 03:41:17 +01:00
|
|
|
- [The `terraform console` command](/cli/commands/console) starts an
|
2020-10-27 02:15:36 +01:00
|
|
|
interactive shell for evaluating Terraform
|
2021-12-15 03:41:17 +01:00
|
|
|
[expressions](/language/expressions), which can be a faster way
|
2020-10-27 02:15:36 +01:00
|
|
|
to verify that a particular resource argument results in the value you expect.
|
|
|
|
|
2021-12-15 03:41:17 +01:00
|
|
|
- [The `terraform fmt` command](/cli/commands/fmt) rewrites Terraform
|
2020-10-27 02:15:36 +01:00
|
|
|
configuration files to a canonical format and style, so you don't have to
|
|
|
|
waste time making minor adjustments for readability and consistency. It works
|
|
|
|
well as a pre-commit hook in your version control system.
|
|
|
|
|
2021-12-15 03:41:17 +01:00
|
|
|
- [The `terraform validate` command](/cli/commands/validate) validates the
|
2020-10-27 02:15:36 +01:00
|
|
|
syntax and arguments of the Terraform configuration files in a directory,
|
|
|
|
including argument and attribute names and types for resources and modules.
|
|
|
|
The `plan` and `apply` commands automatically validate a configuration before
|
|
|
|
performing any other work, so `validate` isn't a crucial part of the core
|
|
|
|
workflow, but it can be very useful as a pre-commit hook or as part of a
|
|
|
|
continuous integration pipeline.
|
|
|
|
|
2021-12-15 03:41:17 +01:00
|
|
|
- [The `0.13upgrade` command](/cli/commands/0.13upgrade) and
|
|
|
|
[the `0.12upgrade` command](/cli/commands/0.12upgrade) can automatically
|
2020-10-27 02:15:36 +01:00
|
|
|
modify the configuration files in a Terraform module to help deal with major
|
|
|
|
syntax changes that occurred in the 0.13 and 0.12 releases of Terraform. Both
|
|
|
|
of these commands are only available in the Terraform version they are
|
|
|
|
associated with, and you are expected to upgrade older code to be compatible
|
|
|
|
with 0.12 before attempting to make it compatible with 0.13. For more detailed
|
|
|
|
information about updating code for new Terraform versions, see the [upgrade
|
2021-12-15 03:41:17 +01:00
|
|
|
guides](/language/upgrade-guides) in the Terraform language docs.
|