terraform/command
Sander van Harmelen b1fdbd7db8 Allow enhanced backends to pass custom exit codes
In some cases this is needed to keep the UX clean and to make sure any remote exit codes are passed through to the local process.

The most obvious example for this is when using the "remote" backend. This backend runs Terraform remotely and stream the output back to the local terminal.

When an error occurs during the remote execution, all the needed error information will already be in the streamed output. So if we then return an error ourselves, users will get the same errors twice.

By allowing the backend to specify the correct exit code, the UX remains the same while preserving the correct exit codes.
2018-10-05 20:44:12 +02:00
..
clistate improve clistate.Locker docs 2018-02-27 10:49:06 -05:00
e2etest Change -force to -auto-approve when destroying 2018-02-01 00:14:42 +00:00
format gofmt with go1.10 2018-02-21 10:22:08 -05:00
test-fixtures backend/migrations: migrate the default state 2018-08-29 21:37:39 +02:00
testdata Have backend operations properly unlock state 2017-02-15 14:41:55 -05:00
apply.go Allow enhanced backends to pass custom exit codes 2018-10-05 20:44:12 +02:00
apply_destroy_test.go Change -force to -auto-approve when destroying 2018-02-01 00:14:42 +00:00
apply_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
autocomplete.go command: use newer version of "complete" library 2017-12-05 10:24:04 -08: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 Implement the Enterprise enhanced remote backend 2018-08-03 22:22:55 +02:00
command_test.go Implement the Enterprise enhanced remote backend 2018-08-03 22:22:55 +02:00
console.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
console_interactive.go command: split out and tag code so compilation works on Solaris 2016-11-14 00:32:01 -08: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 Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
debug_command.go Add debug command with json2dot 2016-11-21 11:59:20 -05:00
debug_json2dot.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
debug_json2dot_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
flag_kv.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
flag_kv_test.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
fmt.go command: add -check flag to fmt (#15304) 2017-07-21 14:37:15 -05:00
fmt_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
get.go use the new ModuleStorage in the command package 2017-10-27 12:58:24 -04:00
get_test.go update tests for updated output 2017-11-03 11:13:31 -04:00
graph.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
graph_test.go graph should not panic with no config 2017-07-18 13:03:57 -04:00
hcl_printer.go always quote hcl map keys 2017-02-24 18:32:59 -05:00
hcl_printer_test.go always quote hcl map keys 2017-02-24 18:32:59 -05:00
hook_ui.go command: show resource actions using resource addresses 2017-09-01 17:55:05 -07:00
hook_ui_test.go Output duration in UiHook after successful operation completion. 2017-08-16 14:41:41 -07:00
import.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
import_test.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
init.go Fix drift caused from gofmt when running make dev and go 1.11. 2018-09-09 10:18:08 -07:00
init_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
internal_plugin.go create a new InternalProviders test 2018-01-05 10:59:30 -05:00
internal_plugin_list.go v0.11.2 2018-01-09 23:13:33 +00:00
internal_plugin_test.go create a new InternalProviders test 2018-01-05 10:59:30 -05:00
meta.go Add a `CredentialsForHost` method to disco.Disco 2018-08-03 11:29:11 +02:00
meta_backend.go Add checks for all flags we currently don’t support 2018-10-05 20:16:34 +02:00
meta_backend_migrate.go backend/migrations: migrate the default state 2018-08-29 21:37:39 +02:00
meta_backend_test.go Fix drift caused from gofmt when running make dev and go 1.11. 2018-09-09 10:18:08 -07:00
meta_new.go command: validate config as part of loading it 2017-12-07 14:28:43 -08:00
meta_test.go properly cleanup and print correct error messages 2017-07-06 11:33:32 -04:00
output.go cli: Remove error on empty outputs when `-json` is set (#11721) 2018-06-20 08:58:07 -07:00
output_test.go cli: update tests 2018-06-26 11:57:52 -07:00
plan.go Allow enhanced backends to pass custom exit codes 2018-10-05 20:44:12 +02:00
plan_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
plugins.go Merge pull request #16969 from hashicorp/jbardin/reset-plugin-dir 2018-01-08 16:51:47 -05:00
plugins_lock.go Standardize on log level "WARN" rather than "WARNING" 2018-01-16 18:05:26 -08:00
plugins_lock_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
plugins_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
providers.go command: validate config as part of loading it 2017-12-07 14:28:43 -08:00
providers_test.go command/providers: Add regression test 2017-06-10 12:02:01 +01:00
push.go command: Fix inconsistent spacing in "terraform push -help" 2018-09-04 18:47:46 -07:00
push_test.go Don't show plugin init message if there are none 2017-06-19 12:08:42 -04:00
refresh.go move backend operation cancellation into meta 2018-02-12 11:56:54 -05:00
refresh_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
show.go command/format: improve consistency of plan results 2017-09-01 17:55:05 -07:00
show_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
state_command.go Thread the environment through all commands 2017-02-28 16:35:46 -05:00
state_list.go cli: "terraform state list" -id argument 2018-02-26 10:54:48 -08:00
state_list_test.go cli: "terraform state list" -id argument 2018-02-26 10:54:48 -08:00
state_meta.go Update the backend import names 2018-08-03 11:29:11 +02:00
state_mv.go update state rm amd mv docs 2017-08-03 13:24:23 -04:00
state_mv_test.go add tests for state commands through a backend 2017-07-27 18:06:47 -04:00
state_pull.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
state_pull_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_push.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
state_push_test.go create failing test cases for remote lineage issue 2017-08-01 19:34:21 -04:00
state_rm.go command/state-rm: tell the user how many items were removed 2017-09-20 12:48:27 -07:00
state_rm_test.go add tests for state commands through a backend 2017-07-27 18:06:47 -04:00
state_show.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
state_show_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_test.go Make the state commands use the real command.Meta 2017-07-27 15:33:50 -04:00
taint.go Make sure the state is locked before it is used 2018-09-18 20:32:04 +02:00
taint_test.go Clean up LockInfo and LockError and use them 2017-02-15 14:44:43 -05:00
ui_input.go command: initial work on migrating envs, basic cases first 2017-03-01 10:59:17 -08:00
ui_input_test.go command: use bufio.ReadString instead of scanning to get spaces 2016-08-22 12:59:48 -07:00
unlock.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
unlock_test.go create failing test cases for remote lineage issue 2017-08-01 19:34:21 -04:00
untaint.go Make sure the state is locked before it is used 2018-09-18 20:32:04 +02:00
untaint_test.go Clean up LockInfo and LockError and use them 2017-02-15 14:44:43 -05:00
validate.go command: validate config as part of loading it 2017-12-07 14:28:43 -08:00
validate_test.go return tfdiags.Diagnostics from validation methods 2017-11-28 11:15:29 -08:00
version.go command: Include provider versions in "terraform version" 2017-10-25 17:36:24 -07:00
version_test.go Implement CLI, version command 2014-05-24 12:04:43 -07:00
workspace_command.go Update wrong usage workspace command description 2018-10-03 12:00:27 +01:00
workspace_command_test.go update workspace new test for inmem backend 2017-08-01 19:34:22 -04:00
workspace_delete.go use the new clistate.Locker in commands 2018-02-23 16:48:15 -05:00
workspace_list.go command: parameter autocomplete for "terraform workspace ..." 2017-09-26 14:01:13 -07:00
workspace_new.go use the new clistate.Locker in commands 2018-02-23 16:48:15 -05:00
workspace_select.go command: parameter autocomplete for "terraform workspace ..." 2017-09-26 14:01:13 -07:00
workspace_show.go command: parameter autocomplete for "terraform workspace ..." 2017-09-26 14:01:13 -07:00