Public/Initialize-PSBuild.ps1
function Initialize-PSBuild { <# .SYNOPSIS Initializes BuildHelpers to populate build environment variables. .DESCRIPTION Initializes BuildHelpers to populate build environment variables. .PARAMETER BuildEnvironment Contains the PowerShellBuild settings (known as $PSBPreference). .PARAMETER UseBuildHelpers Use BuildHelpers module to populate common environment variables based on current build system context. .EXAMPLE PS> Initialize-PSBuild -UseBuildHelpers Populate build system environment variables. #> [CmdletBinding()] param( [Parameter(Mandatory)] [Hashtable] $BuildEnvironment, [switch]$UseBuildHelpers ) if ( $BuildEnvironment.Build.OutDir.StartsWith( $env:BHProjectPath, [StringComparison]::OrdinalIgnoreCase ) ) { $BuildEnvironment.Build.ModuleOutDir = [IO.Path]::Combine( $BuildEnvironment.Build.OutDir, $env:BHProjectName, $BuildEnvironment.General.ModuleVersion ) } else { $BuildEnvironment.Build.ModuleOutDir = [IO.Path]::Combine( $env:BHProjectPath, $BuildEnvironment.Build.OutDir, $env:BHProjectName, $BuildEnvironment.General.ModuleVersion ) } $params = @{ BuildOutput = $BuildEnvironment.Build.ModuleOutDir } Set-BuildEnvironment @params -Force Write-Host $LocalizedData.BuildSystemDetails -ForegroundColor 'Yellow' $psVersion = $PSVersionTable.PSVersion.ToString() $buildModuleName = $MyInvocation.MyCommand.Module.Name $buildModuleVersion = $MyInvocation.MyCommand.Module.Version $LocalizedData.BuildModule -f $buildModuleName, $buildModuleVersion $LocalizedData.PowerShellVersion -f $psVersion if ($UseBuildHelpers.IsPresent) { $nl = [System.Environment]::NewLine Write-Host ($LocalizedData.EnvironmentVariables -f $nl) -ForegroundColor 'Yellow' (Get-Item ENV:BH*).Foreach({ '{0,-20}{1}' -f $_.name, $_.value }) } } |