Skip to content

Commit 3266d6a

Browse files
committed
Fixes a bug to find module manifest when there are no build manifest
1 parent 3fe63f8 commit 3266d6a

File tree

2 files changed

+39
-7
lines changed

2 files changed

+39
-7
lines changed

Source/Private/GetBuildInfo.ps1

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,13 @@ function GetBuildInfo {
7777
}
7878
Write-Debug "Finished parsing Build Manifest $BuildManifest"
7979

80-
$BuildInfo = $BuildInfo | Update-Object $ParameterValues
81-
Write-Debug "Using Module Manifest $($BuildInfo.SourcePath)"
82-
8380
$BuildManifestParent = if ($BuildManifest) {
8481
Split-Path -Parent $BuildManifest
8582
} else {
8683
Get-Location -PSProvider FileSystem
8784
}
8885

89-
if (-Not $BuildInfo.SourcePath) {
86+
if ((-not $BuildInfo.SourcePath) -and $ParameterValues["SourcePath"] -notmatch '\.psd1') {
9087
# Find a module manifest (or maybe several)
9188
$ModuleInfo = Get-ChildItem $BuildManifestParent -Recurse -Filter *.psd1 -ErrorAction SilentlyContinue |
9289
ImportModuleManifest -ErrorAction SilentlyContinue
@@ -102,13 +99,16 @@ function GetBuildInfo {
10299
}
103100
if (@($ModuleInfo).Count -eq 1) {
104101
Write-Debug "Updating BuildInfo SourcePath to $($ModuleInfo.Path)"
105-
$BuildInfo = $BuildInfo | Update-Object @{ SourcePath = $ModuleInfo.Path }
102+
$ParameterValues["SourcePath"] = $ModuleInfo.Path
106103
}
107-
if (-Not $BuildInfo.SourcePath) {
104+
if (-Not $ModuleInfo) {
108105
throw "Can't find a module manifest in $BuildManifestParent"
109106
}
110107
}
111108

109+
$BuildInfo = $BuildInfo | Update-Object $ParameterValues
110+
Write-Debug "Using Module Manifest $($BuildInfo.SourcePath)"
111+
112112
# Make sure the SourcePath is absolute and points at an actual file
113113
if (!(Split-Path -IsAbsolute $BuildInfo.SourcePath) -and $BuildManifestParent) {
114114
$BuildInfo.SourcePath = Join-Path $BuildManifestParent $BuildInfo.SourcePath | Convert-Path

Tests/Integration/Source1.Tests.ps1

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ Describe "Regression test for #84: Multiple Aliases per command will Export" -Ta
8888
}
8989

9090
Describe "Supports building without a build.psd1" -Tag Integration {
91-
Copy-Item $PSScriptRoot\Source1 TestDrive:\Source1 -Recurse
91+
Copy-Item $PSScriptRoot\Source1 TestDrive:\Source1 -Recurse
9292
Remove-Item TestDrive:\Source1\build.psd1
9393

9494
$Build = @{ }
@@ -115,6 +115,38 @@ Describe "Supports building without a build.psd1" -Tag Integration {
115115
$Build.Metadata.FunctionsToExport | Should -Be @("Get-Source", "Set-Source")
116116
}
117117
}
118+
Describe "Supports building without a build.psd1 and not specifying a module manifest" -Tag Integration {
119+
Copy-Item $PSScriptRoot\Source1 TestDrive:\source -Recurse
120+
Remove-Item TestDrive:\source\build.psd1
121+
122+
Push-Location -StackName 'IntegrationTest' -Path TestDrive:\
123+
124+
$Build = @{ }
125+
126+
It "No longer fails if there's no build.psd1" {
127+
$BuildParameters = @{
128+
SourcePath = "TestDrive:\source"
129+
OutputDirectory = "TestDrive:\Result1"
130+
VersionedOutputDirectory = $true
131+
}
132+
133+
$Build.Output = Build-Module @BuildParameters -Passthru
134+
}
135+
136+
It "Creates the same module as with a build.psd1" {
137+
$Build.Metadata = Import-Metadata $Build.Output.Path
138+
}
139+
140+
It "Should update AliasesToExport in the manifest" {
141+
$Build.Metadata.AliasesToExport | Should -Be @("GS", "GSou", "SS", "SSou")
142+
}
143+
144+
It "Should update FunctionsToExport in the manifest" {
145+
$Build.Metadata.FunctionsToExport | Should -Be @("Get-Source", "Set-Source")
146+
}
147+
148+
Pop-Location -StackName 'IntegrationTest'
149+
}
118150

119151
Describe "Regression test for #88 not copying prefix files" -Tag Integration, Regression {
120152
$Output = Build-Module $PSScriptRoot\build.psd1 -Passthru

0 commit comments

Comments
 (0)