69 lines
2.1 KiB
PowerShell
69 lines
2.1 KiB
PowerShell
function Test-PackageHasAlkamiManifestV2 {
|
|
<#
|
|
.SYNOPSIS
|
|
Returns true if the given package contains an Alkami manifest.
|
|
|
|
.PARAMETER FeedSource
|
|
[string] Source feed used to look up the package by
|
|
|
|
.PARAMETER Name
|
|
[string] Package name to lookup
|
|
|
|
.PARAMETER Version
|
|
[string] Package version to lookup
|
|
|
|
.PARAMETER PackageFiles
|
|
[object[]] List of packages from the Proget results
|
|
Array of objects have the shape: @{ fullpath=; parentFullPath=; name=; isDirectory; }
|
|
|
|
.PARAMETER Credential
|
|
[PSCredential] Credential used for talking to feeds as needed
|
|
#>
|
|
[CmdletBinding(DefaultParameterSetName='RawArgs')]
|
|
Param(
|
|
[Parameter(Mandatory = $true, ParameterSetName = 'RawArgs')]
|
|
[string]$FeedSource,
|
|
[Parameter(Mandatory = $true, ParameterSetName = 'RawArgs')]
|
|
[string]$Name,
|
|
[Parameter(Mandatory = $true, ParameterSetName = 'RawArgs')]
|
|
[string]$Version,
|
|
|
|
[Parameter(Mandatory = $true, ParameterSetName = 'Package')]
|
|
[object]$Package,
|
|
|
|
[Parameter(Mandatory=$true, ParameterSetName='ProvidedPackageFiles')]
|
|
[object]$PackageFiles,
|
|
|
|
[Parameter(Mandatory = $false)]
|
|
[PSCredential]$Credential = $null
|
|
)
|
|
|
|
$loglead = (Get-LogLeadName)
|
|
|
|
if ($PSCmdlet.ParameterSetName -eq 'RawArgs') {
|
|
$Package = @{
|
|
Feed = @{
|
|
Source = $FeedSource
|
|
}
|
|
Name = $Name
|
|
Version = $Version
|
|
}
|
|
} else {
|
|
$Name = $Package.Name
|
|
$Version = $Package.Version
|
|
}
|
|
|
|
if($PSCmdlet.ParameterSetName -ne 'ProvidedPackageFiles') {
|
|
Write-Host "$logLead : No package list provided, fetching from remote server"
|
|
$PackageFiles = Get-PackageFileListV2 -Package $Package -Credential $Credential
|
|
}
|
|
|
|
foreach ($filename in (Get-ValidPackageManifestFilenames)) {
|
|
# The .name property is always just the rightmost filename part of the record
|
|
if ($PackageFiles.Where({$_.name -eq $filename -and !$_.fullPath.StartsWith("src/")}).Where({$_}).Count -gt 0) {
|
|
return $true
|
|
}
|
|
}
|
|
|
|
return $false
|
|
} |