terraform/command
Alisdair McDiarmid 86495f93cb views: Fix missing source in diagnostic output
The previous implementation of views was copying and embedding the base
View struct in each individual view. While this allowed for easy access
to the interface of that struct (both in the view and externally), it more
importantly completely broke the ability of the diagnostic printer to
output source code snippets.

This is because the `configSources` field on the base view is lazily set
after the config loader is initialized. In the commands ported to use
views, this happens after the base View struct is copied, so we are
updating the wrong copy of the struct.

This commit fixes this with a simple mechanical refactor: keep a pointer
to the base View struct instead, and update all of the individual views
to explicitly refer to that struct to access its fields and methods.

This is not a particularly satisfying solution, but I can't find
anything clearly better. It might be worth exploring the alternative
approach in the view for the new test command, which explicitly pulls
its dependencies out of the base view, rather than retaining a full
reference. Maybe there's a third way which is better still.
2021-02-26 16:43:03 -05:00
..
arguments cli: Fix overly broad auto-approve argument 2021-02-23 10:09:30 -05:00
cliconfig Grammar nit: "setup" as a verb should be spelled "set up" 2021-01-26 20:39:11 +01:00
clistate clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
e2etest Add support for plugin protocol v6 (#27826) 2021-02-22 10:22:45 -05:00
format Merge pull request #27692 from alexwlchan/abolish-the-heirarchy 2021-02-18 16:34:28 -05:00
jsonconfig cli: Fix for provider requirements in JSON plan 2021-02-05 14:01:58 -05: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 don't marshal state with the wrong schema 2021-02-23 10:19:24 -05:00
testdata command: Experimental "terraform test" command 2021-02-22 14:21:45 -08:00
views views: Fix missing source in diagnostic output 2021-02-26 16:43:03 -05:00
webbrowser command: Revert local patch for pkg/browser 2020-12-10 09:27:02 -05:00
apply.go backend: Replace ShowDiagnostics with view.Diagnostics 2021-02-25 11:26:05 -05:00
apply_destroy_test.go cli: Migrate apply to command views 2021-02-22 11:47:40 -05:00
apply_test.go cli: Migrate apply to command views 2021-02-22 11:47:40 -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 cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
command_test.go cli: Add initial command views abstraction 2021-02-11 15:06:39 -05:00
console.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
console_interactive.go move remaining helper packages to internal 2021-01-20 13:54:00 -05: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 Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
flag_kv.go cli: Improve error for invalid -target flags 2021-02-08 13:48:04 -05:00
flag_kv_test.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
fmt.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
fmt_test.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
get.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
get_test.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
graph.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
graph_test.go cli: Remove positional plan argument from graph 2021-02-02 13:21:26 -05:00
hook_module_install.go Move module install functionality over to internal/initwd 2019-01-14 11:33:21 -08:00
import.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
import_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
init.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
init_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
login.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
login_test.go Add command/login test for scopes 2020-09-15 19:30:48 -04:00
logout.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
logout_test.go command/logout: Add terraform logout command 2020-02-06 15:00:55 -05:00
meta.go cli: Migrate apply to command views 2021-02-22 11:47:40 -05:00
meta_backend.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
meta_backend_migrate.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
meta_backend_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
meta_config.go cli: Add initial command views abstraction 2021-02-11 15:06:39 -05: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 command: Experimental "terraform test" command 2021-02-22 14:21:45 -08: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 cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
output_test.go views: Expand test coverage for views.Output 2021-02-16 08:48:31 -05:00
plan.go views: Fix missing source in diagnostic output 2021-02-26 16:43:03 -05:00
plan_test.go views: Fix missing source in diagnostic output 2021-02-26 16:43:03 -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 Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
providers.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
providers_lock.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
providers_mirror.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
providers_schema.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -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 cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
refresh.go views: Fix missing source in diagnostic output 2021-02-26 16:43:03 -05:00
refresh_test.go cli: Migrate refresh to command views 2021-02-22 11:58:52 -05:00
show.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
show_test.go backend/local: Replace CLI with view instance 2021-02-18 12:08:08 -05:00
state_command.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_list.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_list_test.go command/state list: list resources in nested and expanded modules (#27268) 2020-12-14 11:07:15 -05:00
state_meta.go command/state list: list resources in nested and expanded modules (#27268) 2020-12-14 11:07:15 -05:00
state_mv.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_mv_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_pull.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_pull_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_push.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_push_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_replace_provider.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_replace_provider_test.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_rm.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_rm_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_show.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_show_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05: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 cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
taint_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
test.go command: Experimental "terraform test" command 2021-02-22 14:21:45 -08:00
test_test.go command: Experimental "terraform test" command 2021-02-22 14:21:45 -08: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 cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
unlock_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
untaint.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
untaint_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
validate.go cli: Remove -var/-var-file flags from validate 2021-02-24 12:29:56 -05:00
validate_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
version.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
version_test.go Remove revision from version command 2021-01-12 16:35:30 -05:00
workspace_command.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_command_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
workspace_delete.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_list.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_new.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_select.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_show.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00