Skip to content

Commit a95679d

Browse files
committed
Fix the ability to set Build-Module parameters in build.psd1
Fixes #128 and a few related (undiscovered) bugs where parameters set in build.psd1 would not have worked, including: Target, Passthru, Version, SemVer, Prerelease, BuildMetadata
1 parent fe0d086 commit a95679d

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

Source/Public/Build-Module.ps1

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -169,23 +169,23 @@ function Build-Module {
169169

170170
# Ensure the OutputDirectory (exists for build, or is cleaned otherwise)
171171
$OutputDirectory = $ModuleInfo | ResolveOutputFolder
172-
if ($Target -notmatch "Build") {
172+
if ($ModuleInfo.Target -notmatch "Build") {
173173
return
174174
}
175175
$RootModule = Join-Path $OutputDirectory "$($ModuleInfo.Name).psm1"
176176
$OutputManifest = Join-Path $OutputDirectory "$($ModuleInfo.Name).psd1"
177177
Write-Verbose "Output to: $OutputDirectory"
178178

179179
# Skip the build if it's up to date already
180-
Write-Verbose "Target $Target"
180+
Write-Verbose "Target $($ModuleInfo.Target)"
181181
$NewestBuild = (Get-Item $RootModule -ErrorAction SilentlyContinue).LastWriteTime
182182
$IsNew = Get-ChildItem $ModuleInfo.ModuleBase -Recurse |
183183
Where-Object LastWriteTime -gt $NewestBuild |
184184
Select-Object -First 1 -ExpandProperty LastWriteTime
185185

186186
if ($null -eq $IsNew) {
187187
# This is mostly for testing ...
188-
if ($Passthru) {
188+
if ($ModuleInfo.Passthru) {
189189
Get-Module $OutputManifest -ListAvailable
190190
}
191191
return # Skip the build
@@ -240,31 +240,31 @@ function Build-Module {
240240
}
241241

242242
try {
243-
if ($Version) {
244-
Write-Verbose "Update Manifest at $OutputManifest with version: $Version"
245-
Update-Metadata -Path $OutputManifest -PropertyName ModuleVersion -Value $Version
243+
if ($ModuleInfo.Version) {
244+
Write-Verbose "Update Manifest at $OutputManifest with version: $($ModuleInfo.Version)"
245+
Update-Metadata -Path $OutputManifest -PropertyName ModuleVersion -Value $ModuleInfo.Version
246246
}
247247
} catch {
248-
Write-Warning "Failed to update version to $Version. $_"
248+
Write-Warning "Failed to update version to $($ModuleInfo.Version). $_"
249249
}
250250

251251
if ($null -ne (Get-Metadata -Path $OutputManifest -PropertyName PrivateData.PSData.Prerelease -ErrorAction SilentlyContinue)) {
252-
if ($Prerelease) {
253-
Write-Verbose "Update Manifest at $OutputManifest with Prerelease: $Prerelease"
254-
Update-Metadata -Path $OutputManifest -PropertyName PrivateData.PSData.Prerelease -Value $Prerelease
252+
if ($ModuleInfo.Prerelease) {
253+
Write-Verbose "Update Manifest at $OutputManifest with Prerelease: $($ModuleInfo.Prerelease)"
254+
Update-Metadata -Path $OutputManifest -PropertyName PrivateData.PSData.Prerelease -Value $ModuleInfo.Prerelease
255255
} elseif ($PSCmdlet.ParameterSetName -eq "SemanticVersion" -or $PSBoundParameters.ContainsKey("Prerelease")) {
256256
Update-Metadata -Path $OutputManifest -PropertyName PrivateData.PSData.Prerelease -Value ""
257257
}
258-
} elseif($Prerelease) {
258+
} elseif ($ModuleInfo.Prerelease) {
259259
Write-Warning ("Cannot set Prerelease in module manifest. Add an empty Prerelease to your module manifest, like:`n" +
260260
' PrivateData = @{ PSData = @{ Prerelease = "" } }')
261261
}
262262

263-
if ($BuildMetadata) {
264-
Write-Verbose "Update Manifest at $OutputManifest with metadata: $BuildMetadata from $SemVer"
263+
if ($ModuleInfo.BuildMetadata) {
264+
Write-Verbose "Update Manifest at $OutputManifest with metadata: $($ModuleInfo.BuildMetadata) from $($ModuleInfo.SemVer)"
265265
$RelNote = Get-Metadata -Path $OutputManifest -PropertyName PrivateData.PSData.ReleaseNotes -ErrorAction SilentlyContinue
266266
if ($null -ne $RelNote) {
267-
$Line = "$($ModuleInfo.Name) v$($SemVer)"
267+
$Line = "$($ModuleInfo.Name) v$($($ModuleInfo.SemVer))"
268268
if ([string]::IsNullOrWhiteSpace($RelNote)) {
269269
Write-Verbose "New ReleaseNotes:`n$Line"
270270
Update-Metadata -Path $OutputManifest -PropertyName PrivateData.PSData.ReleaseNotes -Value $Line
@@ -284,7 +284,7 @@ function Build-Module {
284284
}
285285

286286
# This is mostly for testing ...
287-
if ($Passthru) {
287+
if ($ModuleInfo.Passthru) {
288288
Get-Module $OutputManifest -ListAvailable
289289
}
290290
} finally {

0 commit comments

Comments
 (0)