terraform/command
Martin Atkins 3268a7eaba command/output: Raw output mode
So far the output command has had a default output format intended for
human consumption and a JSON output format intended for machine
consumption.

However, until Terraform v0.14 the default output format for primitive
types happened to be _almost_ a raw string representation of the value,
and so users started using that as a more convenient way to access
primitive-typed output values from shell scripts, avoiding the need to
also use a tool like "jq" to decode the JSON.

Recognizing that primitive-typed output values are common and that
processing them with shell scripts is common, this commit introduces a new
-raw mode which is explicitly intended for that use-case, guaranteeing
that the result will always be the direct result of a string conversion
of the output value, or an error if no such conversion is possible.

Our policy elsewhere in Terraform is that we always use JSON for
machine-readable output. We adopted that policy because our other
machine-readable output has typically been complex data structures rather
than single primitive values. A special mode seems justified for output
values because it is common for root module output values to be just
strings, and so it's pragmatic to offer access to the raw value directly
rather than requiring a round-trip through JSON.
2020-12-09 10:10:02 -08:00
..
cliconfig consistent recievers 2020-12-02 13:59:19 -05:00
clistate staticcheck 2020-12-02 13:59:19 -05:00
e2etest e2etest staticcheck 2020-12-02 13:59:19 -05:00
format Merge pull request #27081 from hashicorp/jbardin/staticcheck 2020-12-02 15:43:10 -05:00
jsonconfig Ensure depends_on is in module calls for config 2020-08-20 07:49:03 +10:00
jsonplan command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
jsonprovider command/jsonprovider: staticcheck 2020-12-02 13:59:20 -05:00
jsonstate Unmark values before showing in JSON 2020-10-28 15:30:04 -04:00
testdata command: Fix fmt to preserve blank block labels 2020-11-18 11:59:10 -05:00
webbrowser command/login: Fix browser launcher for WSL users 2020-02-13 15:02:40 -05:00
012_config_upgrade.go staticcheck 2020-12-02 13:59:19 -05:00
012_config_upgrade_test.go command/0.13upgrade: Remove this subcommand 2020-09-29 10:00:35 -07:00
013_config_upgrade.go staticcheck 2020-12-02 13:59:19 -05:00
013_config_upgrade_test.go command/0.13upgrade: Remove this subcommand 2020-09-29 10:00:35 -07:00
apply.go unused 2020-12-02 13:59:19 -05:00
apply_destroy_test.go command: apply and most of import tests passing 2020-04-06 09:24:23 -07:00
apply_test.go unused 2020-12-02 13:59:19 -05:00
autocomplete.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
autocomplete_test.go command: use newer version of "complete" library 2017-12-05 10:24:04 -08:00
cli_ui.go adding new AskSecret to ColorizeUi 2015-04-29 13:07:13 -05:00
cli_ui_test.go command/*: colors on error messages (red) 2014-07-12 20:59:16 -07:00
command.go validate is no longer called from there 2020-12-02 13:59:19 -05:00
command_test.go command staticcheck 2020-12-02 13:59:19 -05:00
console.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
console_interactive.go command: update "terraform console" for HCL2 2018-10-16 18:46:46 -07:00
console_interactive_solaris.go command: split out and tag code so compilation works on Solaris 2016-11-14 00:32:01 -08:00
console_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
flag_kv.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
flag_kv_test.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
fmt.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
fmt_test.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
get.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
get_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
graph.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
graph_test.go remove LegacyProvider (#26433) 2020-10-05 08:33:49 -04:00
hook_module_install.go Move module install functionality over to internal/initwd 2019-01-14 11:33:21 -08:00
hook_ui.go command: Remove stubbed-out apply diff output code 2020-07-22 14:19:00 -04:00
hook_ui_test.go Merge pull request #18823 from minamijoyo/fix-multibyte-trucate 2019-08-06 14:24:24 -04:00
import.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
import_test.go command staticcheck 2020-12-02 13:59:19 -05:00
init.go Update docs and add warning for -get-plugins 2020-12-07 14:13:52 -05:00
init_test.go Update docs and add warning for -get-plugins 2020-12-07 14:13:52 -05:00
login.go Add scopes support to password grant type 2020-09-15 19:32:41 -04:00
login_test.go Add command/login test for scopes 2020-09-15 19:30:48 -04:00
logout.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
logout_test.go command/logout: Add terraform logout command 2020-02-06 15:00:55 -05:00
meta.go Merge pull request #27081 from hashicorp/jbardin/staticcheck 2020-12-02 15:43:10 -05:00
meta_backend.go command staticcheck 2020-12-02 13:59:19 -05:00
meta_backend_migrate.go command: Always validate workspace name 2020-08-11 12:33:12 -04:00
meta_backend_test.go command staticcheck 2020-12-02 13:59:19 -05:00
meta_config.go remove unused code (#26503) 2020-10-07 11:00:06 -04:00
meta_dependencies.go command/init: Read, respect, and update provider dependency locks 2020-10-09 09:26:23 -07:00
meta_new.go prune dead code from command/meta 2019-07-18 16:11:41 -04:00
meta_providers.go separate core and provider loggers 2020-10-23 12:46:32 -04:00
meta_test.go command staticcheck 2020-12-02 13:59:19 -05:00
meta_vars.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
output.go command/output: Raw output mode 2020-12-09 10:10:02 -08:00
output_test.go command/output: Raw output mode 2020-12-09 10:10:02 -08:00
plan.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
plan_test.go command staticcheck 2020-12-02 13:59:19 -05:00
plugins.go run built-in provisioners in-process 2020-12-02 12:45:00 -05:00
plugins_lock.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
plugins_lock_test.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
plugins_test.go command: Make the tests compile again 2020-04-06 09:24:23 -07:00
providers.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
providers_lock.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
providers_mirror.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
providers_schema.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
providers_schema_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
providers_test.go internal: Fix lockfile constraint output for 1.2.* 2020-10-20 10:14:03 -04:00
push.go command: remove "terraform push" 2018-10-16 18:24:47 -07:00
refresh.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
refresh_test.go command staticcheck 2020-12-02 13:59:19 -05:00
show.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
show_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_command.go Thread the environment through all commands 2017-02-28 16:35:46 -05:00
state_list.go command staticcheck 2020-12-02 13:59:19 -05:00
state_list_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_meta.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
state_mv.go command staticcheck 2020-12-02 13:59:19 -05:00
state_mv_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_pull.go command staticcheck 2020-12-02 13:59:19 -05:00
state_pull_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_push.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
state_push_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_replace_provider.go command staticcheck 2020-12-02 13:59:19 -05:00
state_replace_provider_test.go vendor: Upgrade mitchellh/cli 2020-09-10 15:23:02 -04:00
state_rm.go command staticcheck 2020-12-02 13:59:19 -05:00
state_rm_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_show.go command staticcheck 2020-12-02 13:59:19 -05:00
state_show_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
state_test.go command: Allow tests to run to completion without panics or hangs 2018-10-16 19:14:11 -07:00
taint.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
taint_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
ui_input.go Exit with error if UI input scan fails (#26509) 2020-10-21 14:10:06 -04:00
ui_input_test.go Exit with error if UI input scan fails (#26509) 2020-10-21 14:10:06 -04:00
unlock.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
unlock_test.go remove legacy types from command package 2020-12-02 12:33:18 -05:00
untaint.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
untaint_test.go remove LegacyProvider (#26433) 2020-10-05 08:33:49 -04:00
validate.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
validate_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
version.go command/version: Report the current platform 2020-11-19 14:15:30 -08:00
version_test.go command/version: Report the current platform 2020-11-19 14:15:30 -08:00
workspace_command.go command staticcheck 2020-12-02 13:59:19 -05:00
workspace_command_test.go remove legacy types from command package 2020-12-02 12:33:18 -05:00
workspace_delete.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
workspace_list.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
workspace_new.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
workspace_select.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
workspace_show.go command: Always validate workspace name 2020-08-11 12:33:12 -04:00