functions/template-helpers/New-BicepModuleBuildScript.ps1

# <copyright file="New-BicepModuleBuildScript.ps1" company="Endjin Limited">
# Copyright (c) Endjin Limited. All rights reserved.
# </copyright>

<#
.SYNOPSIS
    Generates a build script.
.DESCRIPTION
    Generates a build script, from a template, that uses InvokeBuild and functionality available in this module.
.EXAMPLE
    PS C:\> New-BicepModuleBuildScript -Path ./build.ps1
    Generates a build script in the current directory configured for building & publishing Bicep modules.
.PARAMETER Path
    The destination path for the generated build script.
.PARAMETER Force
    When true, any existing file.
#>

function New-BicepModuleBuildScript
{
    [CmdletBinding()]
    param (
        [Parameter()]
        [string] $OutputPath = "build.ps1",

        [Parameter()]
        [switch] $Force
    )

    $templatePath = "$PSScriptRoot/../../templates/bicepmodulebuild.tmpl.ps1"

    # If we're using the default value of OutputPath (i.e. we've not specified it when calling this function),
    # then it won't be part of the PSBoundParameters collection, so we need to add it before calling the
    # underlying template helper
    if ("OutputPath" -notin $PSBoundParameters.Keys) {
        $PSBoundParameters.Add("OutputPath", $OutputPath)
    }

    _executeTemplate -TemplatePath $templatePath @PSBoundParameters
}