Status: Open
Priority: Low
Component: lib/utils/, bin/install.ps1
Depends on: SC-033
Summary:
As a tool developer, I want shared Install-ToolDependency / Assert-ToolDependency utilities and automatic tool discovery, so that adding a new tool with dependencies requires zero changes to the central installer.
Description: Phase 2 generalizes the tool-level dependency pattern introduced in SC-033:
- Extract shared functions (
Install-ToolDependency,Assert-ToolDependency) intolib/utils/ - Define a standard dependency manifest format (array of hashtables with Name, Type, MinVersion, Repository)
- Have
install.ps1discover tool scripts automatically (e.g., scantools/*/) and invoke their-InstallDepsswitch - Support multiple dependency types (PSModule, Scoop package, etc.) in the shared functions
This pays off when a second tool introduces its own dependencies; until then, SC-033's tool-local approach is sufficient.
-
Install-ToolDependencyandAssert-ToolDependencyexist inlib/utils/ - Both functions handle at least PSModule dependency type
-
install.ps1discovers tools intools/*/and invokes-InstallDepson each - Dependency manifest format is documented
- All existing tests pass; new utilities have Pester tests