Private/Helper/Test-IntegrisModuleDependency.ps1
|
FUNCTION Test-IntegrisModuleDependency { [CmdletBinding()] PARAM ( [Parameter(Mandatory)] [STRING[]]$Name, [VERSION]$MinimumVersion, [INT]$TryCount = 3 ) ### TLS 1.2 or 1.3 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13 ### Get Package Info to Check Version IF (!(Get-PackageProvider -Name Nuget -Force)) { Find-PackageProvider -Name NuGet -Force | Install-PackageProvider -Force | Out-Null Register-PackageSource -Provider NuGet -Name nugetRepository -Location https://www.nuget.org/api/v2 -Force | Out-Null } FOREACH ($Item in $Name) { $Count = 0 WHILE ((Get-Module $Item -ListAvailable).Version -lt (Find-Module $Item).Version -or (!(Get-Module $Item -ListAvailable)) -or (Get-Module $Item -ListAvailable).Version -lt $MinimumVersion ) { $Count++ IF (!(Get-Module $Item -ListAvailable)) { Install-Module $Item -Force } ELSE { Update-Module $Item -Force Remove-Module $Item -Force } Import-Module $Item -Force -WarningAction SilentlyContinue IF ($Count -eq $TryCount) { IF ($MinimumVersion) { IF ([VERSION](Get-Module $Item).Version -ge [VERSION]$MinimumVersion) { RETURN $True } ELSE { RETURN $False } } ELSE { IF (Get-Module $Item) { RETURN $True } ELSE { RETURN $False } } RETURN $False } } } RETURN $True } |