Private/Install-OvfModule.ps1

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
function Install-OvfModule {
    [cmdletbinding()]
    param(
        [parameter(Mandatory)]
        $Test
    )

    Write-Verbose -Message "Attemping to retrieve module from repository [$($Test.Source)]"

    if ($Test.Version) {
        $foundModule = Find-Module -Name $Test.ModuleName -Repository $Test.Source -MinimumVersion $Test.Version -MaximumVersion $Test.Version -ErrorAction SilentlyContinue
    } else {
        $foundModule = Find-Module -Name $Test.ModuleName -Repository $Test.Source -ErrorAction SilentlyContinue
    }

    if ($foundModule) {

        Write-Verbose -Message "Installing module [$($Test.ModuleName)] from [$($Test.Source)]"
        try {
            $foundModule | Install-Module -Confirm:$false -ErrorAction Stop
            return $foundModule
        } catch {
            throw "Unable to install module [$($Test.ModuleName)]"
        }
    } else {
        Write-Error -Message "Unable to find OVF module [$($Test.ModuleName)] in repository [$($Test.Source)]"
    }
}