70 lines
2.1 KiB
PowerShell
70 lines
2.1 KiB
PowerShell
|
function Test-PackageHasDatabaseConfigFile {
|
|||
|
<#
|
|||
|
.SYNOPSIS
|
|||
|
Returns true if the given package contains a DatabaseConfig.ps1 file.
|
|||
|
|
|||
|
.PARAMETER FeedSource
|
|||
|
Source feed used to look up the package by
|
|||
|
|
|||
|
.PARAMETER Name
|
|||
|
Package name to lookup
|
|||
|
|
|||
|
.PARAMETER Version
|
|||
|
Package version to lookup
|
|||
|
|
|||
|
.PARAMETER PackageFiles
|
|||
|
List of packages from previously retrieved Proget results
|
|||
|
Array of objects have the shape: @( { fullpath=; parentFullPath=; name=; isDirectory; } )
|
|||
|
|
|||
|
.PARAMETER Credential
|
|||
|
Credential used for accessing 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 -ne 'ProvidedPackageFiles') {
|
|||
|
if ($PSCmdlet.ParameterSetName -eq 'RawArgs') {
|
|||
|
$Package = @{
|
|||
|
Feed = @{
|
|||
|
Source = $FeedSource
|
|||
|
}
|
|||
|
Name = $Name
|
|||
|
Version = $Version
|
|||
|
}
|
|||
|
}
|
|||
|
Write-Host "$logLead : No package list provided, fetching from remote server"
|
|||
|
$PackageFiles = Get-PackageFileListV2 -Package $Package -Credential $Credential
|
|||
|
}
|
|||
|
|
|||
|
$validDatabaseConfigFilenames = Get-ValidPackageDatabaseConfigFilenames
|
|||
|
|
|||
|
foreach ($filename in $validDatabaseConfigFilenames) {
|
|||
|
# 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
|
|||
|
}
|