Skip to content

Commit f449a2d

Browse files
committed
Adding support for PSEdition-based dependencies
1 parent 7044ec4 commit f449a2d

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

functions/Install-DBOSupportLibrary.ps1

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ Function Install-DBOSupportLibrary {
1515
.PARAMETER Scope
1616
Choose whether to install for CurrentUser or for AllUsers
1717
18+
.PARAMETER SkipDependencies
19+
Skips dependencies of the package with the connectivity libraries, only downloading a single package.
20+
1821
.PARAMETER Confirm
1922
Prompts to confirm certain actions
2023
@@ -37,6 +40,7 @@ Function Install-DBOSupportLibrary {
3740
[DBOps.ConnectionType[]]$Type,
3841
[ValidateSet('CurrentUser', 'AllUsers')]
3942
[string]$Scope = 'AllUsers',
43+
[switch]$SkipDependencies,
4044
[switch]$Force
4145
)
4246
begin {
@@ -76,7 +80,7 @@ Function Install-DBOSupportLibrary {
7680
# Install dependencies
7781
foreach ($package in $packagesToUpdate) {
7882
Write-PSFMessage -Level Verbose -Message "Installing package $($package.Name)($($package.Version))"
79-
$null = Install-Package -Source $packageSource.Name -Name $package.Name -RequiredVersion $package.Version -Force:$Force -Scope:$Scope
83+
$null = Install-Package -Source $packageSource.Name -Name $package.Name -RequiredVersion $package.Version -Force:$Force -Scope:$Scope -SkipDependencies:$SkipDependencies
8084
}
8185
}
8286
}

internal/functions/Get-ExternalLibrary.ps1

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,15 @@ function Get-ExternalLibrary {
55
)
66
$jsonFile = Join-PSFPath -Normalize (Get-Item $PSScriptRoot).Parent.FullName "json\dbops.dependencies.json"
77
$d = Get-Content $jsonFile -Raw | ConvertFrom-Json
8-
if ($Type) { $d.$Type }
9-
else { $d }
8+
if ($Type) { $d.$Type | Where-Object { -Not $_.PSEdition -or $_.PSEdition -eq $PSVersionTable.PSEdition } }
9+
else {
10+
$rdbms = $d | Get-Member | Where-Object MemberType -eq NoteProperty | Select-Object -ExpandProperty Name
11+
$output = @{}
12+
foreach ($t in $rdbms) {
13+
$output += @{
14+
$t = $d.$t | Where-Object { -Not $_.PSEdition -or $_.PSEdition -eq $PSVersionTable.PSEdition }
15+
}
16+
}
17+
[pscustomobject]$output
18+
}
1019
}

tests/Install-DBOSupportLibrary.Tests.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ else {
1616

1717
Describe "Install-DBOSupportLibrary tests" -Tag $commandName, UnitTests {
1818
Context "Testing support for different RDBMS" {
19-
$dependencies = Get-Content (Join-PSFPath -Normalize "$here\.." "internal\json\dbops.dependencies.json") -Raw | ConvertFrom-Json
19+
$dependencies = Get-ExternalLibrary
2020
foreach ($d in ($dependencies | Get-Member | Where-Object MemberType -eq NoteProperty | Select-Object -ExpandProperty Name)) {
2121
It "should attempt to install $d support" {
22-
Install-DBOSupportLibrary -Type $d -Scope CurrentUser -Force -Confirm:$false
22+
Install-DBOSupportLibrary -Type $d -Scope CurrentUser -Force -Confirm:$false -SkipDependencies
2323
foreach ($package in $dependencies.$d) {
2424
$testResult = Get-Package $package.Name -MinimumVersion $package.Version -ProviderName nuget
2525
$testResult.Name | Should Be $package.Name

0 commit comments

Comments
 (0)