| package initwd |
| |
| import ( |
| version "github.com/hashicorp/go-version" |
| ) |
| |
| // ModuleInstallHooks is an interface used to provide notifications about the |
| // installation process being orchestrated by InstallModules. |
| // |
| // This interface may have new methods added in future, so implementers should |
| // embed InstallHooksImpl to get no-op implementations of any unimplemented |
| // methods. |
| type ModuleInstallHooks interface { |
| // Download is called for modules that are retrieved from a remote source |
| // before that download begins, to allow a caller to give feedback |
| // on progress through a possibly-long sequence of downloads. |
| Download(moduleAddr, packageAddr string, version *version.Version) |
| |
| // Install is called for each module that is installed, even if it did |
| // not need to be downloaded from a remote source. |
| Install(moduleAddr string, version *version.Version, localPath string) |
| } |
| |
| // ModuleInstallHooksImpl is a do-nothing implementation of InstallHooks that |
| // can be embedded in another implementation struct to allow only partial |
| // implementation of the interface. |
| type ModuleInstallHooksImpl struct { |
| } |
| |
| func (h ModuleInstallHooksImpl) Download(moduleAddr, packageAddr string, version *version.Version) { |
| } |
| |
| func (h ModuleInstallHooksImpl) Install(moduleAddr string, version *version.Version, localPath string) { |
| } |
| |
| var _ ModuleInstallHooks = ModuleInstallHooksImpl{} |