Skip to content

Commit d07c3d2

Browse files
author
James Brundage
committed
Export-PipeScript - Auto Requiring (Fixes #491)
1 parent 255b5f7 commit d07c3d2

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

Commands/Export-PipeScript.ps1

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,32 @@ function Export-Pipescript {
1818
$InputPath
1919
)
2020

21+
begin {
22+
function AutoRequiresSimple {
23+
param(
24+
[Management.Automation.CommandInfo]
25+
$CommandInfo
26+
)
27+
28+
process {
29+
if (-not $CommandInfo.ScriptBlock) { return }
30+
$simpleRequirements =
31+
foreach ($requiredModule in $CommandInfo.ScriptBlock.Ast.ScriptRequirements.RequiredModules) {
32+
if ($requiredModule.Name -and
33+
(-not $requiredModule.MaximumVersion) -and
34+
(-not $requiredModule.RequiredVersion)
35+
) {
36+
$requiredModule.Name
37+
}
38+
}
39+
40+
if ($simpleRequirements) {
41+
Invoke-PipeScript "require latest $($simpleRequirements)"
42+
}
43+
}
44+
}
45+
}
46+
2147
process {
2248
if ($env:GITHUB_WORKSPACE) {
2349
"::group::Discovering files", "from: $InputPath" | Out-Host
@@ -53,8 +79,7 @@ function Export-Pipescript {
5379
[long]$TotalOutputFileLength = 0
5480
foreach ($buildFile in $filesToBuild) {
5581

56-
$ThisBuildStartedAt = [DateTime]::Now
57-
82+
$ThisBuildStartedAt = [DateTime]::Now
5883
Write-Progress "Building PipeScripts [$FilesToBuildCount / $filesToBuildTotal]" "$($buildFile.Source) " -PercentComplete $(
5984
$FilesToBuildCount++
6085
$FilesToBuildCount * 100 / $filesToBuildTotal
@@ -67,6 +92,7 @@ function Export-Pipescript {
6792

6893
$buildFileTemplate = $buildFile.Template
6994
if ($buildFileTemplate -and $buildFile.PipeScriptType -ne 'Template') {
95+
AutoRequiresSimple -CommandInfo $buildFileTemplate
7096
try {
7197
Invoke-PipeScript $buildFileTemplate.Source
7298
} catch {
@@ -85,7 +111,7 @@ function Export-Pipescript {
85111
$EventsFromThisBuild = Get-Event |
86112
Where-Object TimeGenerated -gt $ThisBuildStartedAt |
87113
Where-Object SourceIdentifier -Like '*PipeScript*'
88-
114+
AutoRequiresSimple -CommandInfo $buildFile
89115
$FileBuildStarted = [datetime]::now
90116
$buildOutput =
91117
try {

0 commit comments

Comments
 (0)