Public/PackerFile.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
function PackerFile {
    [CmdletBinding()]
    param(
        [Parameter( Mandatory = $true)]
        [string]$Name,

        [Parameter( Mandatory = $true)]
        [scriptblock]$Script
    )
    $Script:ThisPackerInfo = [pscustomobject]@{
        JsonBaseName = "$Name.json"
        Source = $null
        Destination = $null
    }

    $Script:ThisPackerFile = [pscustomobject]@{
        builders = @()
        provisioners = @()
        'post-processors' = @()
        variables = @{}
    }

    . $Script

    $Script:ThisPackerFile |
        Out-JsonFile -Path $Script:ThisPackerInfo.Destination -FileName $Script:ThisPackerInfo.JsonBaseName
}