-
Couldn't load subscription status.
- Fork 45
Description
We have implemented a lot of cross-cutting logic for tool installations in ToolCommandlet.
However, we have tools like Docker that behave very differently: Those are tools that get installed globally, that is:
- You can not have multiple installations of the same tool on the same computer at a time.
- These tools are NOT installed into
IDE_HOME/softwarebut somewhere globally into the system (e.g.C:\ProgramFileson Windows or/Applicationson MacOS). - The downloads of such tools will never be extracted (see
isExtract()method) and actuallyinstallInRepodoes not really make sense here.
We should discuss and decide the following design options:
- Make
ToolCommandletmore generic, add aprotectedmethodisGlobalInstallation()that returnsfalseby default that can be overridden by global commandlets likedocker. - Create abstract sub-classes
GlobalToolCommandletandLocalToolCommandletderived fromToolCommandletand make all existingToolCommandlets derive fromLocalToolCommandlet. Then move logic likeinstallInRepomethod intoLocalToolCommandletand also for some other methods likeinstall(...)but keep an abstract signature for the latter inToolCommandlet. Then implement theinstall(...)methods inGlobalToolCommandlet.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Type
Projects
Status
✅ Done