terraform/internal
Martin Atkins 67ca067910 internal/providercache: Linking from one cache to another
When a system-wide shared plugin cache is configured, we'll want to make
use of entries already in the shared cache when populating a local
(configuration-specific) cache.

This new method LinkFromOtherCache encapsulates the work of placing a link
from one cache to another. If possible it will create a symlink, therefore
retaining a key advantage of configuring a shared plugin cache, but
otherwise we'll do a deep copy of the package directory from one cache
to the other.

Our old provider installer would always skip trying to create symlinks on
Windows because Go standard library support for os.Symlink on Windows
was inconsistent in older versions. However, os.Symlink can now create
symlinks using a new API introduced in a Windows 10 update and cleanly
fail if symlink creation is impossible, so it's safe for us to just
try to create the symlink and react if that produces an error, just as we
used to do on non-Windows systems when possibly creating symlinks on
filesystems that cannot support them.
2020-03-25 11:29:48 -07:00
..
copydir internal/copydir: Factor out our recursive directory copy for reuse 2020-03-25 11:29:48 -07:00
earlyconfig addrs: Stronger validation and normalization of provider namespace/type 2020-02-18 15:42:09 -08:00
getproviders internal/getproviders: Functions to determine installation directories 2020-03-25 11:29:48 -07:00
initwd internal/copydir: Factor out our recursive directory copy for reuse 2020-03-25 11:29:48 -07:00
modsdir Module Expansion: Part 2 (#24154) 2020-02-24 17:42:32 -05:00
providercache internal/providercache: Linking from one cache to another 2020-03-25 11:29:48 -07:00
tfplugin5 Add support for provider metadata to modules. (#22583) 2020-03-05 16:53:24 -08:00