terraform/command
Martin Atkins 8c928e8358 main: Consult local directories as potential mirrors of providers
This restores some of the local search directories we used to include when
searching for provider plugins in Terraform 0.12 and earlier. The
directory structures we are expecting in these are different than before,
so existing directory contents will not be compatible without
restructuring, but we need to retain support for these local directories
so that users can continue to sideload third-party provider plugins until
the explicit, first-class provider mirrors configuration (in CLI config)
is implemented, at which point users will be able to override these to
whatever directories they want.

This also includes some new search directories that are specific to the
operating system where Terraform is running, following the documented
layout conventions of that platform. In particular, this follows the
XDG Base Directory specification on Unix systems, which has been a
somewhat-common request to better support "sideloading" of packages via
standard Linux distribution package managers and other similar mechanisms.
While it isn't strictly necessary to add that now, it seems ideal to do
all of the changes to our search directory layout at once so that our
documentation about this can cleanly distinguish "0.12 and earlier" vs.
"0.13 and later", rather than having to document a complex sequence of
smaller changes.

Because this behavior is a result of the integration of package main with
package command, this behavior is verified using an e2etest rather than
a unit test. That test, TestInitProvidersVendored, is also fixed here to
create a suitable directory structure for the platform where the test is
being run. This fixes TestInitProvidersVendored.
2020-04-06 09:24:23 -07:00
..
cliconfig command: Fix bug when using terraform login on Windows 2020-03-18 09:08:40 -04:00
clistate terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
e2etest main: Consult local directories as potential mirrors of providers 2020-04-06 09:24:23 -07:00
format Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
jsonconfig command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
jsonplan command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
jsonprovider Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
jsonstate command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
testdata internal/providercache: Handle built-in providers 2020-04-06 09:24:23 -07:00
webbrowser command/login: Fix browser launcher for WSL users 2020-02-13 15:02:40 -05:00
012_config_upgrade.go command: remove 0.12upgrade (#24403) 2020-03-19 08:01:16 -04:00
012_config_upgrade_test.go command: remove 0.12upgrade (#24403) 2020-03-19 08:01:16 -04:00
013_config_upgrade.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
013_config_upgrade_test.go command: Add scaffold for 0.13upgrade command 2020-03-16 12:50:24 -04:00
apply.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
apply_destroy_test.go command: apply and most of import tests passing 2020-04-06 09:24:23 -07:00
apply_test.go command: apply and most of import tests passing 2020-04-06 09:24:23 -07: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 Implement the Enterprise enhanced remote backend 2018-08-03 22:22:55 +02:00
command_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
console.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04: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 backend: Allow certain commands to opt out of required variable checks 2019-10-10 10:07:01 -07:00
debug_command.go Add debug command with json2dot 2016-11-21 11:59:20 -05: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: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
fmt_test.go command/fmt: Include source snippets in errors 2020-03-26 14:00:26 -04:00
get.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
get_test.go command: Update "terraform get" to use the new module installer 2019-01-17 16:52:34 -08:00
graph.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
graph_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
hook_module_install.go Move module install functionality over to internal/initwd 2019-01-14 11:33:21 -08:00
hook_ui.go Merge pull request #18823 from minamijoyo/fix-multibyte-trucate 2019-08-06 14:24:24 -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 command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
import_test.go command/import: fix TestImport_initializationErrorShouldUnlock 2020-04-06 09:24:23 -07:00
init.go internal/providercache: Handle built-in providers 2020-04-06 09:24:23 -07:00
init_test.go internal/providercache: Handle built-in providers 2020-04-06 09:24:23 -07:00
internal_plugin.go command/internal-plugin: Strip off TF_CLI_ARGS arguments 2019-12-05 15:00:51 -08:00
internal_plugin_list.go provisioner: new Puppet provisioner (#18851) 2019-06-10 15:31:21 -04:00
internal_plugin_test.go command: Make the tests compile again 2020-04-06 09:24:23 -07:00
login.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
login_test.go Add token validation for manual terraform login 2020-02-04 17:24:25 -05: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 Remove terraform.ResourceProvider, use providercache.Installer instead 2020-04-06 09:24:23 -07:00
meta_backend.go command: use backend config from state when backend=false is used. (#23802) 2020-01-07 15:07:06 -05:00
meta_backend_migrate.go don't store prepared backend config 2019-05-24 14:51:18 -04:00
meta_backend_test.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
meta_config.go don't print just warnings when loading backend cfg 2019-12-06 10:20:23 -05:00
meta_new.go prune dead code from command/meta 2019-07-18 16:11:41 -04:00
meta_providers.go internal/providercache: Handle built-in providers 2020-04-06 09:24:23 -07:00
meta_test.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04: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: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
output_test.go command/output: Absence of outputs is not an error 2019-11-06 16:26:32 -08:00
plan.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
plan_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
plugins.go Remove terraform.ResourceProvider, use providercache.Installer instead 2020-04-06 09:24:23 -07: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 command: Make the tests compile again 2020-04-06 09:24:23 -07:00
providers.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
providers_schema.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
providers_schema_test.go command: Make the tests compile again 2020-04-06 09:24:23 -07:00
providers_test.go command: Fix tests for "terraform providers" 2018-10-16 19:14:11 -07:00
push.go command: remove "terraform push" 2018-10-16 18:24:47 -07:00
refresh.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
refresh_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
show.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
show_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
state_command.go Thread the environment through all commands 2017-02-28 16:35:46 -05:00
state_list.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_list_test.go command/state: update and fix the state list command 2018-10-19 16:31:12 +02:00
state_meta.go command: Add state replace-provider subcommand 2020-04-02 08:15:52 -04:00
state_mv.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_mv_test.go use addrs.ConfigResource for dependency tracking 2020-03-25 17:03:06 -04:00
state_pull.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_pull_test.go command: Use statemgr.Import and statemgr.Export for state push and pull 2018-11-19 09:02:35 -08:00
state_push.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_push_test.go command/state: lock when pushing state 2018-11-20 11:15:16 +01:00
state_replace_provider.go command: Add state replace-provider subcommand 2020-04-02 08:15:52 -04:00
state_replace_provider_test.go command: Add state replace-provider subcommand 2020-04-02 08:15:52 -04:00
state_rm.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_rm_test.go finish provider ModuleInstance replacement 2020-03-11 14:19:52 -04:00
state_show.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04: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 command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
taint_test.go finish provider ModuleInstance replacement 2020-03-11 14:19:52 -04:00
ui_input.go Make sure UIInput keeps working after being canceled 2019-04-29 15:15:26 +02:00
ui_input_test.go Make sure UIInput keeps working after being canceled 2019-04-29 15:15:26 +02:00
unlock.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
unlock_test.go check for errors when loading a backend config 2019-03-12 17:57:26 -04:00
untaint.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
untaint_test.go finish provider ModuleInstance replacement 2020-03-11 14:19:52 -04:00
validate.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
validate_test.go vendor: go get github.com/hashicorp/hcl2@0b64543c968c 2019-06-18 17:37:24 -07:00
version.go Remove terraform.ResourceProvider, use providercache.Installer instead 2020-04-06 09:24:23 -07:00
version_test.go Implement CLI, version command 2014-05-24 12:04:43 -07:00
workspace_command.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_command_test.go finish provider ModuleInstance replacement 2020-03-11 14:19:52 -04:00
workspace_delete.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_list.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_new.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_select.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_show.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00