Installing modules from repositories
Last updated at 1:19 pm UTC on 1 May 2002
The class ModuleInstaller is meant to the functionality of proper module loading, with dependency management, unloading, reversibility (automatic unistall capacity), error recovery, and so on. Whereas the basic functions have decent test cases that pass, the last two items are not tested and cleared yet.
ModuleInstaller fullyInstallFromPath: #(Project MyGoodie)
will determine dependencies and load prerequisite modules as necessary. Note that the argument is not a module but just a path, ie. a literal Array, specifying a module that may not yet exist in the image.
The installer object records all its actions to make these reversible, and when your module has loaded successfully, it stores this information with the loaded module. This information can then be used to unload all the code that was brought in with this module:
ModuleInstaller fullyUninstall: theGoodieModule
(The unistall functionality has not been bullet-proofed and tested yet.)