Functions/Private/Test-ShouldGetVersion.ps1
function Test-ShouldGetVersion() { [CmdletBinding()] [OutputType([Boolean])] param($modules ,[string]$RequiredVersion ,[version]$MaximumVersion ,[version]$MinimumVersion) if ($RequiredVersion -ne "" ){ write-Verbose "Required version" $versionparts = split-version $requiredVersion if ($null -eq $versionparts.prerelease){ if ( -not ($modules.Version -eq $RequiredVersion)) { write-Verbose "Required version not found so have to install" return $true } } else { if (($modules | where-object {$_.Version -eq $versionparts.version -and $_.privateData.psdata.prerelease -eq $versionparts.prerelease}).Count -eq 0){ write-Verbose "Required version ($version) for prerelease ($prerelease) not found so have to install" return $true } } } if ($null -ne $MinimumVersion -and -not ($modules.Version -ge $MinimumVersion)) { write-Verbose "Minimum version not found so have to install" return $true } if ($null -ne $MaximumVersion -and -not ($modules.Version -le $MaximumVersion)) { write-Verbose "Maximum version modules found so have to install" return $true } if (($null -ne $MinimumVersion) -and ($null -ne $MaximumVersion) ) { Write-Verbose "Min and Max" if (-not ($modules | Where-Object { $_.Version -ge $MinimumVersion -and $_.Version -le $MaximumVersion })) { write-Verbose "Minimum and Maximum version modules found so have to install" return $true } } if ($null -eq $modules ) { write-Verbose "No modules found so have to install" return $true } write-Verbose "All tests passed don't install - modules installed are $($modules.Version)" return $false; } |