61 lines
1.9 KiB
PowerShell
61 lines
1.9 KiB
PowerShell
function Test-IsPackageMicroserviceV2 {
|
|
<#
|
|
.SYNOPSIS
|
|
Returns true if the given package is a microservice.
|
|
|
|
.PARAMETER NuspecXmlObject
|
|
The nuspec object to test against
|
|
|
|
.PARAMETER Package
|
|
[object] The package to check
|
|
#>
|
|
[CmdletBinding()]
|
|
Param(
|
|
[Alias("nuspec")]
|
|
[Parameter(Mandatory = $false)] # not required: for unit testing purposes because we test in a invoke-parallel we can't. Also it's not really super required. Something else would've failed first.
|
|
[object]$NuspecXmlObject,
|
|
[Parameter(Mandatory = $true)]
|
|
[ValidateNotNull()]
|
|
[object]$Package
|
|
)
|
|
|
|
$loglead = (Get-LogLeadName)
|
|
|
|
$name = $Package.Name
|
|
$version = $Package.Version
|
|
|
|
# Return false if the package is an installer.
|
|
if(Test-IsPackageInstallerV2 -packageName $name) {
|
|
Write-Verbose "$logLead : Determined that package $name|$version is an installer package"
|
|
return $false
|
|
}
|
|
|
|
# Are there any files that match the path pattern
|
|
# The closest Linq .Any() match is .Count -gt 0, so we do that
|
|
|
|
# Return false on denylisted microservices.
|
|
if ($_MicroserviceDenyList.Where({$name -like $_}).Count -gt 0) {
|
|
Write-Verbose "$logLead : Determined that package $name|$version is universally denied as a service"
|
|
return $false
|
|
}
|
|
|
|
# Return true on allowlisted microservices.
|
|
if ($_MicroserviceAllowList.Where({$name -like $_}).Count -gt 0) {
|
|
Write-Verbose "$logLead : Determined that package $name|$version is universally allowed as a service"
|
|
return $true
|
|
}
|
|
|
|
$arguments = @{
|
|
DependencyList = $_MicroDependencies
|
|
NuspecXmlObject = $NuspecXmlObject
|
|
}
|
|
|
|
$isMicroservice = (Test-PackageHasDependencyV2 @arguments)
|
|
|
|
# Write friendly verbose text.
|
|
$microText = if($isMicroservice) { "is" } else { "is not" }
|
|
Write-Verbose "$loglead : Determined that package $name|$version $microText a microservice"
|
|
|
|
return $isMicroservice
|
|
}
|