Functions/Private/Artifacts/SQLServer/Generate_SQLServer.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
30
31
32
33
34
35
36
37
38
39
function Generate_SQLServer {
<#
.SYNOPSIS
Generates Dockerfile contents for Microsoft SQL Server
 
.PARAMETER ManifestPath
The filesystem path where the JSON manifests are stored.
#>

[CmdletBinding()]
param (
    [Parameter(Mandatory = $true)]
    [string] $ManifestPath
)

$ArtifactName = Split-Path -Path $PSScriptRoot -Leaf

Write-Verbose -Message ('Generating result for {0} component' -f (Split-Path -Path $PSScriptRoot -Leaf))
$Manifest = '{0}\{1}.json' -f $ManifestPath, $ArtifactName 

$Artifact = Get-Content -Path $Manifest -Raw | ConvertFrom-Json

if ($Artifact.Status -eq 'Present') {
    $Result = '
### NOTE: You will need to set up a SQL Server answer file for each instance
RUN powershell.exe -ExecutionPolicy Bypass -Command \
'

    $SetupTemplate = 'setup.exe /INSTANCENAME={0} /IACCEPTSQLSERVERLICENSETERMS /QS /CONFIGURATIONFILE=sqlserver.ini; \{1}'

    foreach ($SqlInstance in $Artifact.SqlInstances) {
        $Result += $SetupTemplate -f $SqlInstance.Name, "`r`n"
    }

    Write-Output -InputObject $Result
}


}