This repository was archived by the owner on Jun 13, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 133
Expand file tree
/
Copy pathNew-PackageSourceFromModuleSource.ps1
More file actions
43 lines (36 loc) · 1.77 KB
/
New-PackageSourceFromModuleSource.ps1
File metadata and controls
43 lines (36 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function New-PackageSourceFromModuleSource
{
param
(
[Parameter(Mandatory=$true)]
$ModuleSource
)
$ScriptSourceLocation = $null
if(Get-Member -InputObject $ModuleSource -Name $script:ScriptSourceLocation)
{
$ScriptSourceLocation = $ModuleSource.ScriptSourceLocation
}
$ScriptPublishLocation = $ModuleSource.PublishLocation
if(Get-Member -InputObject $ModuleSource -Name $script:ScriptPublishLocation)
{
$ScriptPublishLocation = $ModuleSource.ScriptPublishLocation
}
$packageSourceDetails = @{}
$packageSourceDetails["InstallationPolicy"] = $ModuleSource.InstallationPolicy
$packageSourceDetails["PackageManagementProvider"] = (Get-ProviderName -PSCustomObject $ModuleSource)
$packageSourceDetails[$script:PublishLocation] = $ModuleSource.PublishLocation
$packageSourceDetails[$script:ScriptSourceLocation] = $ScriptSourceLocation
$packageSourceDetails[$script:ScriptPublishLocation] = $ScriptPublishLocation
$ModuleSource.ProviderOptions.GetEnumerator() | Microsoft.PowerShell.Core\ForEach-Object {
$packageSourceDetails[$_.Key] = $_.Value
}
# create a new package source
$src = New-PackageSource -Name $ModuleSource.Name `
-Location $ModuleSource.SourceLocation `
-Trusted $ModuleSource.Trusted `
-Registered $ModuleSource.Registered `
-Details $packageSourceDetails
Write-Verbose ( $LocalizedData.RepositoryDetails -f ($src.Name, $src.Location, $src.IsTrusted, $src.IsRegistered) )
# return the package source object.
Write-Output -InputObject $src
}