mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-30 10:47:14 -06:00
72ad927c4d
Previously the behavior for loading and installing modules was included in the same package as the representation of the module tree (in the config/module package). In our new world, the model of a module tree (now called a "Config") is included in "configs" along with the Module and File structs. This new package replaces the loading and installation functionality previously in config/module with new equivalents that work with the model objects in "configs". As of this commit, only the loading functionality is implemented. The installation functionality will follow in subsequent commits.
36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package configload
|
|
|
|
import (
|
|
"github.com/hashicorp/terraform/registry"
|
|
"github.com/hashicorp/terraform/svchost/auth"
|
|
"github.com/hashicorp/terraform/svchost/disco"
|
|
"github.com/spf13/afero"
|
|
)
|
|
|
|
type moduleMgr struct {
|
|
FS afero.Afero
|
|
|
|
// Dir is the path where descendent modules are (or will be) installed.
|
|
Dir string
|
|
|
|
// Services is a service discovery client that will be used to find
|
|
// remote module registry endpoints. This object may be pre-loaded with
|
|
// cached discovery information.
|
|
Services *disco.Disco
|
|
|
|
// Creds provides optional credentials for communicating with service hosts.
|
|
Creds auth.CredentialsSource
|
|
|
|
// Registry is a client for the module registry protocol, which is used
|
|
// when a module is requested from a registry source.
|
|
Registry *registry.Client
|
|
|
|
// manifest tracks the currently-installed modules for this manager.
|
|
//
|
|
// The loader may read this. Only the installer may write to it, and
|
|
// after a set of updates are completed the installer must call
|
|
// writeModuleManifestSnapshot to persist a snapshot of the manifest
|
|
// to disk for use on subsequent runs.
|
|
manifest moduleManifest
|
|
}
|