24 lines
757 B
PowerShell
24 lines
757 B
PowerShell
param([switch]$Force)
|
|
|
|
$local:currentSys = [SystemName]::_GetValidValues('',$true,$true);
|
|
|
|
if( -not $global:MyModulesWarning -or $Force ) {
|
|
$global:MyModulesWarning = @()
|
|
}
|
|
[MyConfig]::GetConfigPaths('mymodules',$false) |
|
|
ForEach-Object {
|
|
$local:modules = $( Get-Content $_ | ConvertFrom-Json );
|
|
$modules.Always;
|
|
$currentSys | ForEach-Object { $modules."$_" } | Where-Object { $_}
|
|
} | Where-Object {
|
|
$local:m = $_
|
|
if( $( try {
|
|
-not (Get-Module -ListAvailable $m -ErrorAction stop)
|
|
} catch { $true }
|
|
)) {
|
|
$m -notin $global:MyModulesWarning
|
|
}
|
|
} | ForEach-Object {
|
|
$global:MyModulesWarning += $_
|
|
Write-Warning "Missing module: $_"
|
|
} |